【发布时间】:2011-04-14 01:25:00
【问题描述】:
我正在尝试使用内置的评论框架,但我无法让它工作。代码如下:
#view.py
from django.contrib.comments.forms import *
from forms import *
from models import *
def view_item_detail(request, item_id):
item = Item.manager.get(item_id)
form = CommentForm(item)
if request.POST:
form = CommentForm(request.POST)
if form.is_valid():
new_comment = form.save(commit=False)
# do stuff here
new_comment.save()
messages.success(request, "Your comment was successfully posted!")
return HttpResponseRedirect("")
return render_to_response('item_detail.html',
RequestContext(request, {'item': item,
'authentication': request.user.is_authenticated(),
'user': request.user, 'form': form}))
和
#item_detail.html
{% if authentication %}
{% if form %}
<form action="" method="post">{% csrf_token %}
{{ form }}
<p><input type="submit" name="submit" value="Submit comment" /></p>
</form>
{% endif %}
{% else %}
<p>You must be logged-in to post a comment</p>
{% endif %}
我得到的错误是“'QueryDict'对象没有属性'_meta'”,它来自该行
form = CommentForm(request.POST)
任何帮助将不胜感激,干杯。
【问题讨论】:
-
虽然不是解决方案的一部分,但您应该谨慎使用
if request.POST:,而不是使用if request.method == 'POST':
标签: django django-forms django-comments