首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试在django中添加任何评论时,添加评论表单显示错误

在Django中添加评论时,如果添加评论表单显示错误,可能是由于以下几个原因导致的:

  1. 表单验证错误:在Django中,表单验证是自动完成的,但是如果表单数据不符合预期的规则,就会触发验证错误。可以通过在视图函数中检查表单的有效性,并将错误信息传递给模板来解决此问题。可以使用form.errors属性获取表单的错误信息,并在模板中显示相应的错误提示。
  2. 表单字段定义错误:如果在评论表单中定义的字段有误,也会导致表单显示错误。需要确保表单字段的定义与模型字段的类型和属性一致,并且在模板中正确地渲染表单字段。
  3. 表单提交处理错误:在处理表单提交时,可能存在逻辑错误或者数据处理错误,导致评论表单显示错误。需要仔细检查视图函数中的表单处理逻辑,确保正确地保存评论数据或者返回相应的错误信息。

针对以上问题,可以采取以下解决方案:

  1. 验证表单数据并显示错误信息:
代码语言:txt
复制
def add_comment(request):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            # 处理有效的表单数据
            comment = form.save(commit=False)
            comment.user = request.user
            comment.save()
            return redirect('comments:list')
    else:
        form = CommentForm()
    
    return render(request, 'add_comment.html', {'form': form})

在模板中,可以使用form.errors来显示表单验证错误信息:

代码语言:txt
复制
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  {% if form.errors %}
    <div class="alert alert-danger">
      <strong>错误:</strong>
      {% for field_errors in form.errors.values %}
        {% for error in field_errors %}
          {{ error }}
        {% endfor %}
      {% endfor %}
    </div>
  {% endif %}
  <button type="submit">提交评论</button>
</form>
  1. 检查表单字段定义和模板渲染:

确保评论表单中的字段定义与模型字段的类型和属性一致,并且在模板中正确地渲染表单字段。例如,如果评论表单中有一个content字段,可以在模板中使用{{ form.content }}来渲染该字段。

  1. 检查表单提交处理逻辑:

仔细检查视图函数中的表单提交处理逻辑,确保正确地保存评论数据或者返回相应的错误信息。可以使用Django的表单验证机制来验证表单数据的有效性,并在处理逻辑中进行相应的处理。

以上是针对在Django中添加评论时,添加评论表单显示错误的可能原因和解决方案。希望对你有所帮助。如果需要了解更多关于Django的知识,可以参考腾讯云的Django产品介绍:Django产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django admin详情表单显示添加自定义控件的实现

开发中有需求详情显示里外键字段内容,并且添加按钮弹窗内容,以及按钮跳转内容。...这个时候我们就可以详情内看见button了,但是相对应的,detail的表单添加后,add的表单也会出现一个button,这个不是我们想要的,所以就要想办法让button只存在于detail界面...至此,我们的form添加额外字段显示以及button操作就完成了,还有最后一点,当type为text我们直接添加value即可,type为button,如果需要点击弹窗该如何操作。...而弹出窗口的值获取可以form添加一个hidden字段,value为我们想要获取的值,js取值赋值即可。...刷新页面即可; 以上这篇django admin详情表单显示添加自定义控件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.9K20

django评论系统及多级评论

当用户想要发表评论,他找到我们给他展示的一个评论表单(我们已经看到文章详情页的底部就有一个评论表单,你将看到表单呈现给我们的样子),然后根据表单的要求填写相应的数据。...如果通过表单提交的数据存在错误,那么我们把错误信息返回给用户,并在前端重新渲染,并要求用户根据错误信息修正表单不符合格式的数据,再重新提交。...email 的格式,然后将格式错误信息保存到 errors ,模板便将错误信息渲染显示。...和处理 index 页面的文章列表方式是一样的,我们模板通过 {% for %} 模板标签来循环显示文章对应的全部评论内容。...{% endfor %} 接下来尝试详情页下的评论表单提交一些评论数据,可以看到详情页的评论列表处渲染了你提交的评论数据。

6.8K61

第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

email 的格式,然后将格式错误信息保存到 errors ,模板便将错误信息渲染显示。...因为视图函数 comment 表单实例是绑定了用户提交的评论数据,以及对数据进行过合法性校验的表单,因此当 django 渲染这个表单,会连带渲染用户已经填写的表单数据以及数据不合法的错误提示信息...,首先尝试输入非法格式的数据,例如将邮箱输入为 xxx@xxx,那么评论视图在校验表单数据合法性,发现邮箱格式不符,就会渲染 preview 页面,展示表单错误,将邮箱修改为正确的格式后,再次点击发表...请修改表单错误后重新提交。', extra_tags='danger') 发送的消息被缓存在 cookie ,然后我们模板获取显示即可。...这里我们使用了 bootstrap 的一个 alert 组件,为其设置不同的 class 会显示不同的颜色,所以之前添加消息传入的 extra_tags 就派上了用场。

1.6K20

评论

如果通过表单提交的数据存在错误,那么我们把错误信息返回给用户,并在前端重新渲染,并要求用户根据错误信息修正表单不符合格式的数据,再重新提交。...因此我们强烈建议你完成本教程后接下来的学习仔细阅读 Django 官方文档关于 表单 的介绍,因为表单在 Web 开发中会经常遇到。 下面开始编写评论表单代码。...email 的格式,然后将格式错误信息保存到 errors ,模板便将错误信息渲染显示。...和处理 index 页面的文章列表方式是一样的,我们模板通过 {% for %} 模板标签来循环显示文章对应的全部评论内容。...{% endfor %} 接下来尝试详情页下的评论表单提交一些评论数据,可以看到详情页的评论列表处渲染了你提交的评论数据。

3.1K60

解决Django提交表单报错:CSRF token missing or incorrect的问题

1、Django提交表单时报错:Django提交表单报错: CSRF token missing or incorrect 具体报错页面如下: ?...模板,每个POST表单中都有一个{% csrf_token %}模板标记,目标是一个内部URL。...您将看到这个页面的帮助部分,因为Django设置文件中有DEBUG = True。将其更改为False,将只显示初始错误消息。 您可以使用CSRF_FAILURE_VIEW设置自定义这个页面。...这样子看起来似乎没毛病,但是评论的第三个问题,每次刷新页面,form表单的token都会刷新,而cookie的token却只每次登录刷新。...同样也不难解释,为什么ajax请求,需要从cookie拿取token添加到请求头中。

4.7K30

Django搭建blog网站(二)

recent_post_list 模板变量,之后就可以通过 for 循环来循环显示文章列表数据了,这和我们写首页视图是一样的。...我们表单的视图函数里传递了一个 form 变量给模板,这个变量就包含了自动生成 HTML 表单的全部数据。 detail.html 通过 form 来自动生成表单。...email 的格式,然后将格式错误信息保存到 errors ,模板便将错误信息渲染显示。...和处理 index 页面的文章列表方式是一样的,我们模板通过 {% for %} 模板标签来循环显示文章对应的全部评论内容。...{% endfor %} 接下来尝试详情页下的评论表单提交一些评论数据,可以看到详情页的评论列表处渲染了你提交的评论数据。

4.5K100

Django开发常用30个软件包

它还支持插拔式注册表单,可让用户注册回答一些附加问题。 django-allauth 支持多于 20 种认证提供者,包括 Facebook、Google、微博 和 微信。...Django stored messages 可以很好地集成Django的消息框架django.contrib.messages)并让用户决定会话过程存储在数据库的消息。  ...当文章很长,你很难找到精确的匹配,同时搜索全文需要消耗大量的计算资源。有了haystack,你可以直接django中直接添加搜索功能,像搜索标题一样搜索全文,而无需关注索引建立、搜索解析等技术问题。...简介:用于提供评论功能,最先集成 django 的 contrib 内置库里,后来被移出来单独维护。.../django-notifications-hq/ 27.django-simple-captcha 简介:配合 django表单模块,方便地为表单添加一个验证码字段。

3.3K20

Django 博客单元测试:测试评论应用

如果提交的评论内容有错误(例如 email 格式不正确),将渲染 preview.html 预览页面,并且预览页面显示评论出错的消息提醒和评论表单包含的错误。...请修改表单错误后重新提交。')...这个测试用例,我们构造了一个缺失评论内容、评论人名字且邮箱格式不正确的数据,然后将其提交了评论。接着就是对预期结果的断言。这里关键的一点是,渲染的预览页面应该包含提示用户的表单错误。...所以我们从响应的上下文变量取得表单 form 这个模板变量。...接着使用如下代码获取表单错误并断言响应是否包含了这些错误: for field_name, errors in form.errors.items(): for err in errors:

53130

项目之删除评论、修改评论及架构--Kafka简介(14)

删除出现未知错误,请联系系统管理员!")...修改评论-前端页面 评论列表,每个评论都有一个专属的表单用于修改评论,默认全部是收起的,当点击“编辑”,会将其展开,再次点击,会收起!...由于评论列表的每一项都是遍历生成的,所以,这些“编辑”链接的目标及各表单所在匹域的ID全部是相同的,则会导致点击任何一个“编辑”会展开所有表单,再次点击会收起所有表单!...接下来,表单控件设置默认值,使得展开显示原来的评论正文: 然后,为文本域控件分配ID,便于后续获取文本域中填写的评论正文: 最后,还需要为表单绑定提交事件的响应函数: answers.js...添加新的函数,先测试使用: 已经获取到commentId和content的基础上,添加$.ajax()处理即可: 如果修改成功后,需要将表单收起,可以发表成功后添加(因为此前已经为表单区域绑定了

62120

Django开发社交类网站必备的10个第三方应用

虽然这些库很适合用于社交网站的开发,但也有很大一部分是通用的,可以用于任何Django 开发的项目。使用这些库将大大提高开发效率和生产力。.../ 点评:用于提供评论功能,最先集成 django 的 contrib 内置库里,后来被移出来单独维护(可能觉得评论并非是一个通用的库吧)。...好在这个库具有很好的拓展性,基于上边提到的 django-mptt,就可以构建一个支持层级评论评论库,就像 我的博客评论展示的这样(个人博客的评论模块就是基于 django-contrib-comments...,但还有一些通用的类视图没有包含在 django 源码,这个库补充了更多常用的类视图。.../en/latest/ 点评:配合 django表单模块,方便地为表单添加一个验证码字段。

1.9K70

Django 1.10文文档-第一个应用Part3-视图和模板

基于月份的归档页面 —— 显示特定月份内每天发表过博客; 基于日期的归档页面 —— 显示特定日期内发表过的所有博客; 评论:处理针对某篇博客发布的评论。...我们的投票应用,我们将建立下面的四个视图: Question首页 —— 显示最新发布的几个Question; Question“详细”页面 —— 显示单个Question的具体内容,提供一个投票的表单...{{question.question_text}}的示例,首先Django对对象问题进行字典查找。如果没有,它尝试一个属性查找 - 在这种情况下工作。如果属性查找失败,它将尝试列表索引查找。...当使用模板标签{% url %},人们该如何做才能使得Django知道为一个URL创建哪个应用的视图? 答案是在你的主URLconf下添加命名空间。...Django 1.10文文档-第一个应用Part4-表单和通用视图

2.3K60

登录

、渲染控件、渲染帮助信息等注册表单部分已经讲过,登录表单只引入了一个新的东西:{{ form.non_field_errors }},这显示的同样是表单错误,但是显示表单错误是和具体的某个表单字段无关的...相对 {{ field.errors }},这个则显示的是具体某个字段的错误。...但有些表单错误不和任何具体的字段相关,比如用户输入的用户名和密码无法通过验证,这可能是用户输入的用户名不存在,也可能是用户输入的密码错误,因此这个错误信息将通过 {{ form.non_field_errors...但是现代的用户认证系统,我们不为用户提供这么详细的信息,只是笼统地告知用户名不存在或者密码错误。这能提高一些用户账户的安全性。...下面就来给网站添加注销登录的功能吧! 总结 本教程的示例项目代码位于 GitHub:Django Auth Example。 如果遇到问题,请通过下面的方式寻求帮助。 在下方评论区留言。

3.8K50

Django 3.1 官网学习路线

基于月份的归档页面——显示给定月份的所有天数和条目。 基于天的归档页面——显示给定天的所有条目。 评论操作——处理向给定条目发布评论。...它将运行 detail()方法并显示 URL 中提供的任何 ID。尝试“/polls/34/results/”和 /polls/34/vote/——这些将显示占位符结果和投票页面。...通常,您需要定制管理表单的外观和工作方式。可以通过注册对象告诉 Django 所需的选项来实现。 通过重新排列编辑表单的字段来了解其工作原理。...“添加选择”表单如下所示: 表单,“Question”字段是一个选择框,包含数据库的每个问题。Django 知道一个外键应该在管理中表示为一个框。我们的例子,目前只存在一个问题。...如果在该窗口中添加一个问题并单击“Save”,Django 会将该问题保存到数据库,并在您正在查看的“add choice”表单动态地将其添加为选中的选项。

8.2K10

drf序列化器之反序列化的数据验证

如果是非字段错误,可以通过修改REST framework配置的NON_FIELD_ERRORS_KEY来控制错误字典的键名。...# 如果是ajax请求,则自动返回json格式的错误信息 # 如果是表单请求,则自动返回html格式的错误信息 result = serializer.is_valid(...4、validate验证 序列化器需要同时对多个字段进行比较验证,可以定义validate方法来验证 def validate(self, data): """验证多个字段,方法名必须为...字段添加validators选项参数,也可以补充验证行为,如下 # 序列化器的外面声明一个验证函数 def check_price(data): # data代表要验证的数据 if data...label 用于HTML展示API页面显示的字段名称 help_text 用于HTML展示API页面显示的字段帮助提示信息

2.1K30

零基础使用Django2.0.1打造在线教育网站(一):项目介绍

关于博主 努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!...每篇文章的后面,我会把我在这部分出现的BUG以及解决方法附上,以供大家参考,大家有什么问题可以评论下方留言。...项目介绍 Django介绍 Django是目前Python Web开发的主流框架,因为它有许多功能强大的第三方插件,你可以很方便的开发出自己的工具包,这使得它具有很强的可扩展性,被许多大型公司使用...点击课程:你可以课程详情页对课程进行收藏和取消收藏。同时可以采用富文本对课程内容进行展示。 点击开始学习:你可以看到课程的章节信息和评论信息以及课程资源的下载链接。...你可以课程新增页面上传图片,和进行富文本的编辑,时间选择,添加章节,添加课程资源等。 日志记录:它可以记录后台人员的操作情况。

1.7K50
领券