Python Django查询集具有特定外键的最新对象
我有一个侧面模型Python Django查询集具有特定外键的最新对象,python,django,django-models,Python,Django,Django Models,我有一个侧面模型 class Profile(models.model): user=models.Foreignkey(user,null=True,blank=True) 及 对于一封电子邮件,可能会有很多类似的情绪 test@test.com happy test@test.com sad 我希望获得一个查询集,以便电子邮件属于在配置文件模型中具有外键的用户,并且该情绪是为该用户创建的最新情绪如果您的db后端是postgresql,则可以使用: @e4c5提到的关于主键不是记录
class Profile(models.model):
user=models.Foreignkey(user,null=True,blank=True)
及
对于一封电子邮件,可能会有很多类似的情绪
test@test.com happy
test@test.com sad
我希望获得一个查询集,以便电子邮件属于在配置文件模型中具有外键的用户,并且该情绪是为该用户创建的最新情绪如果您的db后端是postgresql,则可以使用: @e4c5提到的关于主键不是记录创建顺序的最终指示符的限制仍然适用。还要注意的是,
电子邮件
在auth.User
中不是唯一的,因此,如果用户共享同一封电子邮件,则只有他们中任何人的最新情绪才会出现在查询集中
test@test.com happy
test@test.com sad
Moods.objects\
.filter(email__in=User.objects.filter(profile_set__isnull=False).values_list('email', flat=True))\
.order_by('email', '-pk')\ # group by email, latest first
.distinct('email') # pick first for each email