将对象传递给包含的模板

时间:2017-06-19 10:59:38

标签: django django-templates

我有这个简单的模型:

class Book(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(max_length=1500)
    page_count = models.PositiveSmallIntegerField()
    author = models.CharField(max_length=50)

我想渲染此模型对象的列表(作为book_copies传递给模板)。

我的(简化)模板:

# 'books/list.html'
<div>
    {% for copy in book_copies %}
        {% include 'books/book.html' with book=copy only %}
    {% endfor %}
</div>

# 'books/book.html'
<p>
    {{ book.title }} - {{ book.author }}
</p>

似乎模板变量copy作为str模型的Book表示传递给包含的模板。因此,我无法访问其字段,例如titleauthor

是否可以在不转换为包含模板的情况下传递模型对象?

1 个答案:

答案 0 :(得分:1)

<div>
    {% for copy in book_copies %}
        {% include 'books/book.html' with author=copy.author title=copy.title only %}
    {% endfor %}
</div>

你不能传递这样的对象,但你可以试试这个