0

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

但是昨天我发表了一条评论,只是为了好玩,我遇到了这个错误

IntegrityError at /comments/post/
(1048, "Column 'content_type_id' cannot be null")
  1. 这并不特定于任何特定模型,而是发生在发布评论的任何模型上。
  2. 以匿名用户身份发布评论时不会出现此错误
  3. 评论正在发布

我不明白是什么导致了这个错误,我们一直在开发的其他东西并没有以任何方式干扰评论应用程序。

我知道我提供的信息很少,但任何形式的帮助都将不胜感激。

4

1 回答 1

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 %}.

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

于 2012-01-31T21:56:02.330 回答