【发布时间】:2016-01-18 20:22:47
【问题描述】:
我是 Django(1.8,Python 3)的新手,我正在尝试用它构建一个小网站。
[为了简单起见,我把我的情况改成一个虚构的书店]
我想要完成的是:假设我有一个模型(如果您愿意,可以使用数据库表),其中包含一堆书籍数据。我想向用户显示数据。但是我很懒,我不想指定模板中的每个字段。我想要一个自动循环遍历特定书籍的每个字段并显示详细名称和数据的循环。
我目前已经完成的是,我可以通过在我的视图中访问我的模板中的数据:
book = Book.objects.get(id=book_id)
其中 book_id 由 url 注入(例如 site/book/1)。 所以,现在我可以访问模板中的每个字段,例如{{ book.name }} 或 {{ book.author }}。但是,为每个字段添加一个 html 段落需要大量的手动工作。
但是,我想在我的模板中添加这样的内容(只是一个示例,不必完全一样):
{% for field in book %}:
{{ field.verbose_name }} {{ field.data }}
{% endfor %}
但是仅仅用我当前的 .get(id=book_id) 来做这件事是行不通的。而且,我也无法访问详细名称。
此外,如果该解决方案也适用于关系,那就太好了,例如:
{% for field in book.author %}:
{{ field.verbose_name }} {{ field.data }}
{% endfor %}
这里显示当前选中书的作者表的所有数据。
无论如何,我希望我的解释清楚。我不太擅长提出明确的问题:(
谢谢!
【问题讨论】:
-
获取
verbose_name见this SO QA -
我刚刚从 Roger 那里找到了一个很好的答案 here,基本上是在滥用表格