评论帖子不被允许(400):缺少content_type或object_pk字段

时间:2014-06-25 12:33:43

标签: django

成为django&的新手尝试一些我被困的乐趣,我得到了错误:

Comment post not allowed (400): Missing content_type or object_pk field.

我的form.html文件:

{% if user.is_authenticated %}
    <form action="/comments/post/" method="post">{% csrf_token %}
        <p><label>Post a comment:</label><br />
        <textarea name="comment" rows="10"
            cols="60"></textarea></p>
        <input type="hidden" name="options"
            value="{{ options }}" />
        <input type="hidden" name="target" value="{{ target }}"  />
        <input type="hidden" name="gonzo" value="{{ hash }}" />
        <input type="submit" name="post" value="submit comment" />
    </form>
{% else %}
    <p>Please <a href="/login/">log in</a> to post comments.</p>
{% endif %}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

如果您要为django-contrib-comments应用提供自己的表单,则需要包含多个字段,其中一个字段是您要评论的对象的对象ID。否则Django不知道如何建立注释和对象之间的关联。

您需要查看:https://github.com/django/django-contrib-comments/blob/master/django_comments/forms.py

要查看表单上所需的所有字段,然后将其添加到自定义模板中。

答案 1 :(得分:0)

补充@ Brandon的回答,您需要提供django_comments所需的字段(出于安全原因,并将评论连接到您的内容)。
此代码段取自默认的comments/form.html模板,可以使其正常工作:

<form action="/comments/post/" method="post">{% csrf_token %}
    {% for field in form %}
        {% if field.is_hidden %}
            <div>{{ field }}</div>
        {% endif %}
    {% endfor %}
    ... your fields here
</form>