使用django Publisher示例,我想通过list_publisher.html模板列出数据库中的所有发布者,我的模板看起来像;
{% extends "admin/base_site.html" %}
{% block title %}List of books by publisher{% endblock %}
{% block content %}
<div id="content-main">
<h1>List of publisher:</h1>
{%regroup publisher by name as pub_list %}
{% for pub in pub_list %}
<li>{{ pub.name }}</li>
{% endfor %}
</div>
{% endblock %}
但是当我运行“http://127.0.0.1:8000/list_publisher/”时,模板只打印页面标题而没有错误!我做错了什么?
答案 0 :(得分:3)
一些建议:
{% block content %}{% endblock %}
部分,以便通过我的list_publisher.html进行优化{%regroup publisher by name as pub_list %}{{ pub_list|length }}
。这应该至少显示列表的长度。如果是'0'......你知道为什么它不显示任何东西{% regroup publisher|dictsort:"name" by name as pub_list %}
确保如果长度为“0”,则必须确保定义了发布者(已从数据库初始化),并进行了适当的排序。
换句话说,您是否在任何地方(在模板中或在定义的模板中)看到了:
publisher = Publisher.objects.all().order_by("name")
?
(同样,按名称排序很重要,以确保您的重组标签正常工作)
答案 1 :(得分:0)
VonC的答案很好。
查看pub_list的快速而肮脏的方法是在模板中粘贴[{{pub_list}}]
。我把它放在方括号中,以防它是空的。顺便说一下,你可能会得到类似[,,,,,]
的东西。这是因为对象引用包含在&lt;&gt;中你的浏览器正在进行WTF?只需查看源代码,您就会看到完整的结果。