django评论应用程序无法显示表单

时间:2014-04-26 13:21:01

标签: python django

在阅读了关于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>

1 个答案:

答案 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,这是您的选择