Jak*_*kin 3 django django-comments wagtail
我的网站实际上是一个鹡鸰网站,尽管我不确定这是否有什么不同。这是一个简单的博客应用程序,具有用于查看帖子的博客页面和用于显示每个帖子的页面。
我按照此处的说明设置 django-comments-xtd
文档说要实现以下代码以获取每个帖子页面上显示的评论计数。
{% get_comment_count for object as comment_count %}
<div class="text-center" style="padding-top:20px">
<a href="{% url 'blog:post-list' %}">Back to the post list</a>
⋅
{{ comment_count }} comments have been posted.
</div>
Run Code Online (Sandbox Code Playgroud)
我将实际链接更改为以下内容,因为这就是我的网站中的链接(从另一个教程构建)
<p><a href="{{ page.get_parent.url }}">Return to blog</a></p>
Run Code Online (Sandbox Code Playgroud)
据我所知,我不认为像这样更改 url 会导致问题。我已确保也在文件开头加载注释。
实际错误是:
Error during template rendering
In template /home/jake/blog/blog/post_page.html, error at line 8
'str' object has no attribute '_meta'
Run Code Online (Sandbox Code Playgroud)
第 8 行指的是这一行:
{% get_comment_count for object as comment_count %}
Run Code Online (Sandbox Code Playgroud)
有人可以更详细地解释这个错误吗?
Django django-comments-xtd 存储对象的注释。在您的例子中,对象是 Wagtail 页面。改变:
{% get_comment_count for object as comment_count %}
Run Code Online (Sandbox Code Playgroud)
到:
{% get_comment_count for page as comment_count %}
Run Code Online (Sandbox Code Playgroud)
该object变量是一个空字符串''。这是 django-comments-xtd 代码中某处发生的情况的演示:
>>> ''._meta
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '_meta'
Run Code Online (Sandbox Code Playgroud)
Wagtail 页面既是模型又是视图。当 url 被解析时,Page.serve被调用。它调用get_context并返回一个字典。
{'page': self, 'self': self, 'request': request}
Run Code Online (Sandbox Code Playgroud)
上下文 - 所有变量及其值 - 用于填充模板。object上下文中没有!
Django 模板允许变量未定义。空变量不会引发错误。这个概念很有用。当上下文不提供变量时,它将默认为空字符串。
当文档显示示例代码并提到{{ object }}or时obj,它们的意思是“一个对象”。任何物体(披萨、汽车、问题)。你的对象。Wagtail 中的默认对象是 Page 对象。您应该使用页面变量。
| 归档时间: |
|
| 查看次数: |
974 次 |
| 最近记录: |