我有兩個Django模型:添加Django的查詢集 - 去年獲得相關對象和過濾通過它的數據
class Person(models.Model):
unique_id = models.CharField()
class PersonData(models.Model):
person = models.ForeignKey('Person')
phone = models.CharField()
email = models.CharField()
date = models.DateTimeField()
新PersonData
對象時,他們的信息發生變化,但舊的被保留。然後我想要一個過濾器,它將根據他們與之相關的最新對象PersonData
的數據過濾人員。
我有以下查詢集:
filter_email = "[email protected]"
filter_phone = "964477425"
qs = Person.objects.all()
if filter_email:
qs = qs.filter(persondata__email__icontains=filter_email)
if filter_phone:
qs = qs.filter(persondata__phone__icontains=filter_phone)
但通過與Person
關聯的每個PersonData
對象過濾器搜索。是否可以將此篩選器限制爲僅限最新的PersonData
對象?
你說得對。擁有最新的PersonData對象的外鍵將使事情變得更容易。 – Mark
是的,它會和你的查詢完全一致,現在假設你把外鍵字段命名爲persondata,儘管我建議把它命名爲'latest_data' :)。 –