在django评论中的/ comments / post /中的IntegrityError

时间:2012-01-31 21:12:47

标签: django django-comments django-contrib django-contenttypes

我一直在使用Django内置评论框架,一段时间以来它工作得非常好。由于我们在测试之后最初处于开发阶段,因此我们没有尝试过。

但是昨天我发布了一条评论,只是为了它的乐趣,我登陆了这个错误

IntegrityError at /comments/post/
(1048, "Column 'content_type_id' cannot be null")
  1. 这不是特定于任何特定模型的,而是发布在评论发布的任何模型上。
  2. 当评论以匿名用户身份发布时,不会出现此错误
  3. 评论即将发布
  4. 我无法理解导致此错误的原因,我们一直在开发的其他内容,并没有以任何方式干扰评论应用。

    我知道我提供的信息很少,但任何形式的帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

根据您提供的信息不确定为什么会出现该错误,但通常comments包使用contenttypes包中的通用外键将注释链接到其中“属于。您收到的错误是因为(无论出于何种原因)在保存评论时未定义评论“所属”的内容。

提交评论的默认表单实际上包括它应该“归属”的上下文对象,并在提交评论时将此数据与POST一起传递。通常,您会使用{% render_comment_form %}模板标记显示此表单并传递所有者:

{% render_comment_form for [owner] %}

评论所属的对象[owner]

或者您可以使用{% get_comment_form %}标记来自定义表单:

{% get_comment_form for [owner] as form %}

如果您使用了完全自定义的方式来包含表单,则应检查以确保您传递了默认情况下这两个标记中包含的所有隐藏值。

此外,如果您要自定义表单,则使用{% comment_form_target %}设置表单的操作非常重要。

希望这足以帮助您进一步解决问题。