Django使用非相关模型查询对象

时间:2018-04-03 15:39:41

标签: django django-queryset django-orm

我有这3个型号:

models.QuerySet

根据当前时间(基本上是下面的State_Schedules),contactables()也有Person进行过滤。

如何让state个对象在django中与Persons进行比较?

我试过了,但是使用Person_Address获取persons = Person_Address.objects.select_related('person').filter( state__in=( _.state for _ in State_Schedules.objects.contactables() ) ) 似乎很麻烦。

Person_Address

如果我可以将Person关联作为关键字访问raw的过滤器,这应该很简单,但我还没有找到如何执行此操作。

有更好的方法还是我不得不求助于chrome.webNavigation sql?

1 个答案:

答案 0 :(得分:0)

Person_AddressPerson的外键,因此您可以过滤反向关系。使用双下划线表示法来过滤Person_Address模型中的字段。

states = [_.state for _ in State_Schedules.objects.contactables()]
people = Person.objects.filter(person_address__state__in=states)