我正在读一本Django的书,我似乎被卡住了。书中使用的代码库是.96,我的Django安装使用的是1.0。我被困在与Django评论(django.contrib.comments)相关的部分。当我提交我的评论时,我得到“不允许发表评论(400)为什么:缺少content_type或object_pk字段”。我发现Django文档在这方面有点欠缺,我希望能得到一些帮助。
评论框显示得很好,当我提交评论时,我得到了上面的错误(或安全警告,因为它确实出现了)。
我对评论表单的调用:
{% render_comment_form for bookmarks.sharedbookmark shared_bookmark.id %}我的form.html代码:
{% if user.is_authenticated %}
<form action="/comments/post/" method="post">
<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 %}任何帮助都将不胜感激。
我的观点如下:
def bookmark_page(request, bookmark_id):
shared_bookmark = get_object_or_404(
SharedBookmark,
id=bookmark_id
)
variables = RequestContext(request, {
'shared_bookmark': shared_bookmark
})
return render_to_response('bookmark_page.html', variables)发布于 2009-07-15 13:40:57
它并不完美,但我已经解决了这个问题。我使用了Django本身附带的form.html,这让我通过了“不允许发表评论(400)”的消息,并成功地发表了我的评论。它还包括一些其他字段,但由于我没有在forms.py中定义自己的表单,所以我想这是意料之中的。无论如何,我似乎已经解决了这个问题。感谢您关注我的问题。
发布于 2009-07-13 17:35:44
Django在0.96和1.0之间经历了巨大的变化,所以你遇到问题就不足为奇了。
对于您的特定问题,请参阅here。
不过,我建议你找一本更新一点的书。不仅仅是评论,Django的整个区域都与0.96完全不同-特别是管理员。如果它是官方的'Django book',你可以找到版本2(目标是Django 1.0) here的草案。
https://stackoverflow.com/questions/1120139
复制相似问题