如何在任何模板上使用Django内置注释框架
我刚开始学习Django内置的注释功能。起初,我认为评论模板应该在任何页面上都能很好地工作,只要使用get\u comment\u form或render\u comment\u form。但是现在,当我将这些代码添加到一个普通页面时,它真的很烦人。它不起作用。也许换言之。我不知道如何指定要附加到普通页面上的对象。以下是详细信息:如何在任何模板上使用Django内置注释框架,django,django-templates,django-comments,Django,Django Templates,Django Comments,我刚开始学习Django内置的注释功能。起初,我认为评论模板应该在任何页面上都能很好地工作,只要使用get\u comment\u form或render\u comment\u form。但是现在,当我将这些代码添加到一个普通页面时,它真的很烦人。它不起作用。也许换言之。我不知道如何指定要附加到普通页面上的对象。以下是详细信息: models.py class Entry(models.Model): title = models.CharField(max_length=250)
models.py
class Entry(models.Model):
title = models.CharField(max_length=250)
body = models.TextField()
pub_date = models.DateTimeField()
enable_comments = models.BooleanField()
urls.py
urlpatterns = patterns('',
url(r'^profile/','django.views.generic.simple.direct_to_template',{
'template' : 'admin_ryu_blog/profile.html'},name='profile'),
)
现在我只想在template profile.html上使用评论框架。我该怎么办?您现在可以将profile.html视为空白页。然后,如果可以使用内置注释框架显示注释表单,则可以添加所需的任何代码
顺便说一句,我尝试了以下方法:
{% load comments %}
{% render_comment_form for profile %}
然后它会提示一条错误消息。对我上一个问题的相同追踪。
点击 你不能。comments框架需要引用一个对象 但想到的一个简单解决方案是构建一个映射到URL的模型,如下所示:
class CommentAnchor(models.Model):
path = models.CharField(max_length=256)
生成生成这些对象并将其添加到所有模板上下文的。请记住将上下文处理器添加到设置中。模板\u上下文\u处理器
,并记住在呈现模板时使用RequestContext
def CommentAnchorProcessor(request):
comment_anchor, created = CommentAnchor.objects.get_or_create(path=request.path)
return {
'comment_anchor': comment_anchor, # now, this is available in every template.
}
现在,您可以通过这些新对象渲染注释
{% render_comment_form for comment_anchor %}