python - 为什么不在基本模板中使用 ListView?如何从 ech url 的基本模板调用视图?Django 2.1.5
问题描述
我想在侧边栏(模板“base_generic.html”)上显示数据库中所有评论的列表。我使用 ListView 执行此操作,但这不起作用。
视图.py
class CommentListView(generic.ListView):
template_name = "base_generic.html"
model = Comment
paginate_by = 5
base_generic.html
{% block sidebar %}
<h1>Comments list</h1>
{% if comment_list %}
<ul>
{% for comment in comment_list %}
<p>{{ comment.author }} ({{ comment.comment_date }}) {{ comment.description|safe }}</p>
{% endfor %}
</ul>
{% else %}
<p>There are no comments.</p>
{% endif %}
{% endblock %}
模型.py
class Comment(models.Model):
description = models.TextField()
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
comment_date = models.DateTimeField(auto_now_add=True, null=True)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
class Meta:
ordering = ["-comment_date"]
def __str__(self):
return "{}".format(self.description)
DB有评论,但在页面上显示“没有评论”。如何从 ech url 的基本模板中调用它?
解决方案
你不能这样做。一个 URL 映射到一个视图,一个 URL 不能有多个视图。
如果您需要在每个页面的基本模板中填充侧边栏,则需要使用自定义模板标签:包含标签可能就是您想要的。
推荐阅读
- c# - 为什么 WebService (.Net C#) 在 HTTPS 上响应 404,在 HTTP 上响应 400
- python - 'tf.keras.preprocessing.text_dataset_from_directory' 函数未读取阿拉伯语文本文件
- scala - 如何向 DataFrame 添加新行?
- javascript - 如何从excel电子表格中获取数据到文本文档中
- javascript - 如何使用 bootstrap 和 thymeleaf 或 Javascript 实现嵌套展开和折叠
- c++ - 从公共类与私有类 C++ 继承
- vba - Word表格中的相互排除复选框
- karate - 使用空手道的故事书 UI 中的 iframe 元素不可交互
- sql - 在 SQL Server 中的两个数字列之间选择行
- shibboleth - Shibboleth 4 IDP:将属性解析器分配给特定流