如何将子模板上使用的上下文传递给它继承的父模板?
示例:
在views.py中
def author(request, code):
author = get_object_or_404(Author, code=code)
books = Book.objects.filter(author_id=author.id)
reviews = Review.objects.filter(author_id=author)
return render(request, 'foo/author.html', {'author': author, 'books': books, 'reviews': reviews})
在author.html中
{% extends 'base.html' %}
base.html中的
{% for book in books %}
<ul>
<li>{{ book.title }}</li>
<li>{{ book.year_published }}</li>
</ul>
{% endfor %}
这是针对父模板('base.html')内的导航栏。它会根据您所在的作者页面而变化。
答案 0 :(得分:0)
在child.html
中为图书创建新版块。 child.html上的bookblock
应该覆盖bookblock
base.html
{% bookblock %}
{% for book in books %}
<ul>
<li>{{ book.title }}</li>
<li>{{ book.year_published }}</li>
</ul>
{% endfor %}
{% endblock %}
base.html
将与book
相关的代码放在基本和子模板上块名称必须相同的块中。
{% bookblock %}
{% for book in books %}
<ul>
<li>{{ book.title }}</li>
<li>{{ book.year_published }}</li>
</ul>
{% endfor %}
{% endblock %}