我想用相关对象注释一个查询集,如果该对象存在,或者如果不存在则注释另一个字段:
#models.py
class MyModel(Model):
f1 = ForeignKey(MyRelated, related_name='f1')
f2 = ForeignKey(MyRelated, related_name='f2', null=True)
#queryset
MyModel.objects.annotate(
f=Case(
When( *something* ,then=F('f2')),
default=F('f1')
)
)
我需要知道的是代替*something*
来代替外键是否存在。
答案 0 :(得分:3)
橡胶立刻把这个丢掉了:
MyModel.objects.annotate(
f=Case(
When(f2__isnull=False ,then=F('f2')),
default=F('f1')
)
)