我试图从DetailsView模板中的两个模型中提取数据(在Django中)。当然存在与视图相关联的主要模型(例如,文章),其易于访问。但是,我想从模型中访问数据(例如条款)。我不想使用ForeignKey,因为我会使用很多条款'在每篇文章中,'而且由于ForeignKey允许我只链接到条款模型中的行,我将不得不设置多个ForeignKey字段,这可能会很快乱。
我在想这可以使用get_context_data或templatetags完成,但还没有运气。有什么想法吗?
答案 0 :(得分:1)
从Django Documentation,您可以添加您希望在模板上下文中调用的任何查询集或上下文值,如下面的book_list
将列出所有图书,并且不必与任何其他图书相关联模型..
#views.py
class PublisherDetail(DetailView):
model = Publisher
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super(PublisherDetail, self).get_context_data(**kwargs)
# Add in a QuerySet of all the books
context['book_list'] = Book.objects.all()
return context
#yourtemplate.html
{% for book in book_list %}
{% if book %}
{{ book.title }}
{% endif %}
{% empty %}
No book_list found.
{% endfor %}