模式:表A和表B之间有M2M。
我有一些A对象的查询集QS0和一个B对象的确切实例。
如果B通过M2M与A连接,如何用True注释QS0,如果不是,如何注释False?
谢谢
发布于 2021-03-02 03:28:39
给定下面的示例模型
from django.db import models
class ModelA(models.Model):
title = models.CharField(max_length=100)
class ModelB(models.Model):
title = models.CharField(max_length=100)
a_objects = models.ManyToManyField(ModelA, related_name='b_objects')从理论上讲,您应该能够通过以下方式注释ModelA对象的查询集:每个对象是否都链接到一个ModelB对象。
from django.db.models import Case, When, Value
b_object = ModelB.objects.get(id=some_id)
QS0 = ModelA.objects.annotate(is_linked_to_b=Case(When(b_objects__id=b_object, then=Value(True)), default=Value(False), output_field=BooleanField())
# QSO[some_index].is_linked_to_b should return either True or False.https://stackoverflow.com/questions/66391571
复制相似问题