[英]Django queryset and select_related()
我有一个关于Django查询集和select_related的小问题。
使用此模型:
class DeviceGroup(models.Model):
name = models.CharField(max_length=255, unique=True)
owner = models.ForeignKey(User)
class Device(models.Model):
name = models.CharField(max_length=255)
address = models.GenericIPAddressField()
port = models.IntegerField()
group = models.ForeignKey(DeviceGroup)
class Sensor(models.Model):
device = models.ForeignKey(Device)
我想要一个像这样的清单:
- group 1
- device 1
- device 2
- device 3
-sensor 1
- group 2
- group 3
- device 4
- device 5
- sensor 2
我已经阅读了有关select_related()的文档,但是我不知道该怎么做,因为我必须启动查询bu组原因,它直接链接到登录的用户。
如果要以这种方式在Django模板中显示它,则可能要使用regroup
: https : //docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
新文档有些模糊,我发现旧文档版本易于理解(例如,来自https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#regroup ):
{% regroup people by gender as gender_list %}
<ul>
{% for gender in gender_list %}
<li>{{ gender.grouper }}
<ul>
{% for item in gender.list %}
<li>{{ item.first_name }} {{ item.last_name }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
在您的情况下:
从view.py
group = Group.objects.all()
template.html
{% regroup groups by device as device_list %}
有可能优化或更改我的模型。 如果我无法查询,那可能是模型问题,而不是queryset问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.