我正在尝试从文档中学习Django中的动态过滤。 https://docs.djangoproject.com/en/1.10/topics/class-based-views/generic-display/#dynamic-filtering 我一直在一步一步地从文档中复制/粘贴代码。但我不明白关于将发布者添加到上下文中的最后一点,这意味着我无法弄清楚如何在模板中查询该数据。我唯一可以“抓住”出版商。
因为在PublisherDetail视图中publisher_detail.html
您可以直接做这样的事情,列出发布商的所有图书:
{% for book in book_list %}
{{ book.title }}
{% endfor %}
这是绊倒我的一部分。
我们也可以同时将发布者添加到上下文中,所以我们 可以在模板中使用它:
# ...
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super(PublisherBookList, self).get_context_data(**kwargs)
# Add in the publisher
context['publisher'] = self.publisher
return context
答案 0 :(得分:1)
在context['publisher'] = self.publisher
中设置get_context_data
表示您可以在上下文中显示发布商的详细信息。例如,您可以在书名列表上方显示出版商的名称:
<h2>Books published by {{ publisher.name }}</h2>
{% for book in book_list %}
{{ book.title }}
{% endfor %}
答案 1 :(得分:0)
您可以按照此处所述访问相关对象:What is `related_name` used for in Django?。
尝试拨打publisher.books.all()
或publisher.book_set.all()
:
{% for book in publiser.book_set.all %}
{{ book.title }}
{% endfor %}