django - 如何在 django html 中呈现模型的孩子
问题描述
我有一个博客列表页面,其中显示了一些标题文本,然后是单个博客页面的列表。
模型.py
class BlogListingPage(Page):
blog_listing_title = models.CharField(...)
...
def get_context(self, request, *args, **kwargs):
"""Add custom content to our context."""
context = super().get_context(request, *args, **kwargs)
context['blog_pages'] = self.get_children().live()
return context
class BlogDetailPage(Page):
blog_title = models.CharField(...)
视图.py
def blog(request):
...
context = {'data': BlogListingPage.objects.all()}
return render(request, url, context)
blog_listing.html
{% for obj in data %}
<h2>{{ obj.blog_listing_title }}</h2>
{% for post in obj.blog_pages.all %}
{{ post.specific.blog_title }}
<br>
{% endfor %}
{% endfor %}
blog_listing_title显示正确,但我不知道如何访问blog_title的集合
我应该怎么办?我不了解 PageQuerySet 的结构以及 django 如何使用它来表达 html 元素
[编辑] 这曾经在我直接调用 url 时起作用。当我介绍视图时,我必须添加
{% for obj in data %}
那就是细节消失的时候
解决方案
你可以检查一下:
#models.py
class BlogListingPage(Page):
blog_listing_title = models.CharField(...)
...
def get_context(self, request, *args, **kwargs):
"""Add custom content to our context."""
context = super().get_context(request, *args, **kwargs)
context['blog_pages'] = BlogDetailPage.objects.live().child_of(self)
return context
class BlogDetailPage(Page):
blog_title = models.CharField(...)
推荐阅读
- javascript - PhoneGap (Android):将 localStorage 备份到云的最简单、最快的方法?
- wordpress - 如何将带有文本字段的图像插入数据库的自定义表中?
- qt - qglviewer上鼠标下的坐标错误
- vhdl - 错误 (10536):counts.vhd(25) 处的 VHDL 循环语句错误:循环必须在 10,000 次迭代内终止
- python - 导航面板未显示在大图上
- java - 如何去除弹出窗口和工具提示周围的灰色阴影?
- python - 如果没有 python 3.5 或更高版本和 pip 18 及更高版本,MatPlotLib 将无法安装,而且我没有 root 访问权限
- java - Firebase Job Dispatcher 每次连接到互联网时都不会触发
- reactjs - React 服务单例替代方案
- python - 如何使用 for 循环从两个不同的列表中打印两个变量?