python - 通过Django模板中的其他对象值访问对象值?
问题描述
这{{ category.id }}
返回我 1
这{{ categories_counts.1 }}
会返回我的数据
但是{{ categories_counts.category.id }}
不起作用?
是否可以通过其他对象值访问值?
视图.py:
categories = Category.objects.all()
categories_counts = {}
for category in categories:
count = Venue.objects.filter(category_id=category.id).count()
categories_counts[category.id] = count
所以categories
包含:
<QuerySet [<Category: restaurants>, <Category: sportfitness>, <Category: carservices>, <Category: beautysalons>]>
categories_counts
包含:
{1: 1, 2: 0, 3: 0}
类别型号:
class Category(models.Model):
name = models.CharField(max_length=20)
bg_name = models.CharField(max_length=20, default=None)
category_bg_name = models.CharField(max_length=100, default=None)
解决方案
通常,除非您创建自定义模板标签,否则您无法categories_counts[category.id]
在 Django 模板中访问,正如@sayse 在评论中所说。
在您的特定情况下,您可以使用地点计数来注释查询集。
from django.db.models import Count
categories = Category.objects.annotate(num_venues=Count('venue'))
然后在您的模板中,您可以执行以下操作:
{% for category in categories %}
{{ category.name }} has {{ category.num_venues }} venue(s)
{% endfor %}
推荐阅读
- python - Google Drive API 数据与 UI 中的数据不匹配
- php - 如何使用php将数组作为键=>值与字符串值插入sql
- python - 无法使用熊猫从python中的excel文件中提取元素
- linux - 即使网络消失也让 ping 继续运行
- opencart-3 - 在第 52 行的 /storage/modification/system/library/template/twig.php 中找不到类“Twig_Extension_DTwigManager”
- sha256 - 将一串数字生成的 hash-256 转换为 Java 中的 64/32 位唯一数字
- kubernetes - 列出 kubernetes 中一项服务的调用者的最佳方法是什么?
- android - 活动未自动从后台启动
- makefile - make 命令只构建第一个目标 - Makefile
- reactjs - 通过单击某个条件 Ant Design 表格展开表格的一行