use*_*629 2 python django django-queryset
我想用相关对象注释查询集(如果该对象存在),或者使用另一个字段(如果不存在):
#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')
)
)
Run Code Online (Sandbox Code Playgroud)
我需要知道的是用什么来代替来*something*检查外键是否存在。
橡胶立即避开了这个:
MyModel.objects.annotate(
f=Case(
When(f2__isnull=False ,then=F('f2')),
default=F('f1')
)
)
Run Code Online (Sandbox Code Playgroud)