【问题标题】:IntegrityError at /comments/post/ in django comments/comments/post/ 处的 IntegrityError 在 django 评论中
【发布时间】:2012-01-31 21:12:47
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    {% render_comment_form for [owner] %}
    

    [owner] 评论所属的对象在哪里。

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

    {% get_comment_form for [owner] as form %}
    

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

    此外,如果您正在自定义表单,请务必使用{% comment_form_target %} 设置表单的操作。

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

    【讨论】:

    • 我会仔细阅读您的建议,如果我能够纠正我的问题,我一定会接受答案。非常感谢
    • 嘿,克里斯,我知道它的回复有点晚了,但我仍在尝试我的运气。我已经仔细检查了您的建议,但不是问题所在。因为同样的事情适用于我的另一个模型并且没有抛出错误。我唯一能想到的是,我最近将所有 url 从博客更改为博客,这可能会导致错误。我从 python 控制台检查了博客 content_type,那里一切都很好
    猜你喜欢
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2021-08-02
    • 2016-06-11
    相关资源
    最近更新 更多