Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在任何模板上使用Django内置注释框架_Django_Django Templates_Django Comments - Fatal编程技术网

如何在任何模板上使用Django内置注释框架

如何在任何模板上使用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)

我刚开始学习Django内置的注释功能。起初,我认为评论模板应该在任何页面上都能很好地工作,只要使用get\u comment\u formrender\u comment\u form。但是现在,当我将这些代码添加到一个普通页面时,它真的很烦人。它不起作用。也许换言之。我不知道如何指定要附加到普通页面上的对象。以下是详细信息:

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 %}