【发布时间】:2015-07-24 13:38:13
【问题描述】:
在 Django 中,我有以下模型:Person、Device、Consumption
一个人可以有零到多个设备
一个设备可以有 零到多消费
如何根据消费中的值过滤人员?
我可以过滤来自设备的字段:
Person.objects.filter(device__is_active=True)
但是如何过滤消费字段呢?
【问题讨论】:
在 Django 中,我有以下模型:Person、Device、Consumption
一个人可以有零到多个设备
一个设备可以有 零到多消费
如何根据消费中的值过滤人员?
我可以过滤来自设备的字段:
Person.objects.filter(device__is_active=True)
但是如何过滤消费字段呢?
【问题讨论】:
要获取Consumption 对象(在本例中通过其 ID),您需要执行以下操作:
Person.objects.filter(device__consumptions__id=consumption_id)
【讨论】:
A Device can have zero to many Consumptions 所以在这种情况下,查询是在设备的消费集上(默认情况下可能称为consumption_set)。