如果我有两个型号
class ModelA(models.Model):
pass
class ModelB(models.Model):
model_a = models.ForeignKey(ModelA, related_name="children")
status = models.IntegerField()
date = models.DateTimeField()
我可以使用ModelA.objects.children.latest('date')
获取最新的ModelB对象,但是我还可以针对最新ModelB对象中的字段过滤我的ModelA查询集吗?我的意思是
ModelA.objects.filter(ModelA.objects.children.latest('date')['status']=1)
或
ModelA.objects.filter(latest_children__status=1)
我知道这段代码不会起作用,但我希望它能说明我想要的东西。
答案 0 :(得分:0)
你可以这样做
null
首先过滤对象然后获取最新信息。
答案 1 :(得分:0)
不确定这是否可行,但请试一试。
ModelA.objects.filter(children__status=1)\
.annotate(last_date=Max('children__date'))\
.filter(children__date=F('last_date'))