在阅读了关于django评论框架之后我即将实现它,所以我将它安装在我的settings.py文件中并开始使用模板标签(即时通讯使用django 1.6,我知道它已被弃用但它应该适用于什么即时通讯打算用它来。)
尝试使用
时{% get_comment_form for <object> as <var %}
然后使用它我得到这个错误: 反转&#39; django.contrib.comments.views.comments.post_comment&#39;参数&#39;()&#39;和关键字参数&#39; {}&#39;没找到。
我搜索并解决了问题,我确实发现有几个人遇到了同样的问题,但是他们在urls.py中配置了他们已配置的行,或者他们只是拥有相同的配置,之后他们已经解决了这个问题。
在排除故障时我发现这似乎与我的urls.py文件中的值捕获有关(在下面显示的行中)但我需要捕获该值以显示正确的arcticle所以我不能删除它。
我试图为Story对象实现注释,这是urls.py的相关部分:
url(r'^story/display/(?P<specific_story>\d+)/$', 'base.views.display_story', name='display_story'),
url(r'^comments/', include('django.contrib.comments.urls'))
这是观点:
def display_story(request, specific_story):
""" Display details for a specific story. """
story_details = Story.objects.get(id=specific_story)
story_votes = story_details.votes
picture = story_details.picture
return render(request, "base/story/display_story.html", {
'story_details': story_details,
'story_votes': story_votes
})
这是我使用模板标签的模板代码的一部分:
{% get_comment_form for experience_details as form %}
<table>
<form action="{% comment_form_target %}" method="POST">
{% csrf_token %}
{{ form }}
<tr>
<td colspan="2">
<input type="submit" name="submit" value="Post">
<input type="submit" name="preview" value="Preview">
</td>
</tr>
</form>
</table>
答案 0 :(得分:0)
模板标签需要RequestContext。 引发此问题是因为模板无法正确呈现,因为缺少某些变量。
您可以通过以下方式导入RequestContext:
from django.shortcuts import render_to_response
from django.templates.context import RequestContext
def display_story(request, specific_story):
this_view_context = {
'story_details': story_details,
'story_votes': story_votes
}
request_context = RequestContext(request, this_view_context)
return render_to_response( "base/story/display_story.html", request_context)
您可以使用render_to_response或render,这是您的选择