如何解决Django要计算不同的项目类型
| 以前,我在表中有一个客户摘要列表。在一个列中,我有一个对象类型的列表,在另一列中,我有该对象类型的数量。@login_required
def client_summary(request,client_id):
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
tape_and_film_items = client.storageitem_set.filter(type=\"1\")
total_tape_and_film_items = tape_and_film_items.count()
electrical_equipment_items = client.storageitem_set.filter(type=\"2\")
total_electrical_equipment_items = electrical_equipment_items.count()
storage_office_equipment_items = client.storageitem_set.filter(type=\"3\")
total_storage_office_equipment_items = storage_office_equipment_items.count()
<table cellspacing=\"15\" style=\"float: left\">
<tr><th scope=\"col\">Type</th><th scope=\"col\">Quantity</th></tr>
</tr><td>Tape + Film</td><td align=\"center\">{{total_tape_and_film_items}}</td></tr>
</tr><td>Electrical Equipment</td><td align=\"center\">{{total_electrical_equipment_items}}</td></tr>
</tr><td>Storage Office Equipment</td><td align=\"center\">{{total_storage_office_equipment_items}}</td></tr>
</table>
现在这可以工作,但是有一个问题。我之前不知道用户可以从Web应用程序中的表单添加自己的存储对象。如果他们尝试添加新的对象类型,则除非我在通过模板中的变量的视图中显式编写django查询,否则它将不会显示在我的客户端摘要中。如果没有表单可添加对象类型,则可以使用。
所以现在在我的模板中,我现在在类型列中。这部分将起作用,因为我真正需要做的就是列出所有存储项目对象,而不管它是谁的客户端。
views.py
item_type = models.StorageObject.objects.all()
模板
{% for item in item_type %}
{{item.title}}
{% endfor %}
但是在数量列中,我似乎无法计数。不返回任何内容。
{% for item in items %}
{{item.type.count}}
{% endfor %}
解决方法
如果需要显示每个标签的项目信息,则可以使用regroup标签。如果只需要数量,请使用“ 4”聚合功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。