【发布时间】:2018-04-12 16:30:55
【问题描述】:
我正在尝试跨两个模板过滤对象。一个(父级)应该显示最近更新的五个,另一个应该显示所有这些。
我让后者与以下代码完美配合:
views.py:
...
class ChannelProjectList(generic.ListView):
context_object_name = 'projects_by_channel'
template_name = 'channels/projects_by_channel.html'
def get_queryset(self):
self.channel = get_object_or_404(Channel, slug=self.kwargs['slug'])
return Project.objects.filter(channel=self.channel)
...
HTML:
{% for project in projects_by_channel %}
{{project.name}}
{% endfor %}
但是当我在父页面上“包含”它时,它会中断。经过一些研究,我明白为什么会发生这种情况以及为什么这不是正确的方法。我四处挖掘并找到了this,这似乎正是我想要做的,但是当我实现它时,它不仅没有工作,而且还破坏了正在工作的页面。
这感觉很简单,但由于这是我的第一个项目,我每天都会遇到新事物,这就是其中之一。
最终解决方案:
在this 的帮助下,我意识到我需要将同一个 get_queryset 复制到第二个模板视图中,然后我可以使用“view.channel_projects”将其调用到模板中
【问题讨论】:
标签: python django django-views django-queryset