使用非相关模型的 Django 查询对象
Django query objects using non related models
我有这 3 个模型:
class Person(models.Model):
name
age
class Person_Address(models.Model):
address
number
city
state
person = models.ForeignKey(Person)
class State_Schedules(models.Model):
state
hour
我还有一个 models.QuerySet
用于 State_Schedules
用于根据当前时间过滤(基本上是下面的 contactables()
)。
我怎样才能得到 Person
对象来比较它在 django 中的 state
?
我试过了,但是使用他们的 Person_Address
.
获取 Persons
似乎很麻烦
persons = Person_Address.objects.select_related('person').filter(
state__in=(
_.state for _ in State_Schedules.objects.contactables()
)
)
如果我可以访问 Person_Address
关联作为 Person
过滤器的关键字,这应该很容易,但我还没有找到如何做到这一点。
是否有更好的方法,或者我必须求助于 raw
sql?
从Person_Address
到Person
有一个外键,所以可以按反向关系进行过滤。使用双下划线符号过滤 Person_Address
模型中的字段。
states = [_.state for _ in State_Schedules.objects.contactables()]
people = Person.objects.filter(person_address__state__in=states)
我有这 3 个模型:
class Person(models.Model):
name
age
class Person_Address(models.Model):
address
number
city
state
person = models.ForeignKey(Person)
class State_Schedules(models.Model):
state
hour
我还有一个 models.QuerySet
用于 State_Schedules
用于根据当前时间过滤(基本上是下面的 contactables()
)。
我怎样才能得到 Person
对象来比较它在 django 中的 state
?
我试过了,但是使用他们的 Person_Address
.
Persons
似乎很麻烦
persons = Person_Address.objects.select_related('person').filter(
state__in=(
_.state for _ in State_Schedules.objects.contactables()
)
)
如果我可以访问 Person_Address
关联作为 Person
过滤器的关键字,这应该很容易,但我还没有找到如何做到这一点。
是否有更好的方法,或者我必须求助于 raw
sql?
从Person_Address
到Person
有一个外键,所以可以按反向关系进行过滤。使用双下划线符号过滤 Person_Address
模型中的字段。
states = [_.state for _ in State_Schedules.objects.contactables()]
people = Person.objects.filter(person_address__state__in=states)