假设我有以下模型,我会跟踪一个人移动城镇的日期以及该人之前的城镇信息:
class Town(models.Model):
name = models.CharField(max_length=128)
zipcode = models.PositiveSmallIntegerField(unique=True)
class TownHistory(models.Model):
town = models.ForeignKey(Town)
person = models.ForeignKey(Person)
move_date = models.DateField()
class Person(models.model):
towns = models.ManyToManyField(Town, through='TownHistory')
转到town_detail
页面时,我想要了解{{1>}当前当前的QuerySet
个{ {1}}。
我对获取Person
不感兴趣,我只想概述Town
和当前 move_date
。
换句话说:如果移动了Person
,则Town
应仅包含最新城镇,而不是之前的城镇。
获取此数据的最佳解决方案是什么? 我可以通过一些黑客来实现这一点,例如:
Person
但是后来我没有得到QuerySet
,我认为应该有一个“更清洁”的解决方案?我也尝试过使用for person in Person.objects.all():
person.townhistory_set.latest('move_date') # add this one to a list
,但这没有帮助。
使用Django 1.8 LTS。