我有以下型号:
class McMbData(models.Model):
lastname = models.CharField(max_length=50,blank=True)
class Visits(models.Model):
mcmbdata_id = models.ForeignKey(McMbData, on_delete=models.CASCADE)
name = models.CharField(max_length=50,blank=True)
signe_in = models.BooleanField(default=False)
我只想获得signe_in=True 的访问记录
以下是我尝试过的:
McMbData.objects.filter(visits__signe_in = False)
因此,我得到了条件至少满足一次的所有McMbData条目:
姓氏:穆特曼
访问:熊,真-叛徒,假-好莱坞,假
我只想得到真实的访问记录。像这样:
姓氏:穆特曼
访问:熊,真正的
对于任何可以覆盖预取查询集的McMbData对象,您只需要signe_in=True Visits。
from django.db.models import Prefetch
McMbData.objects.prefetch_related(
Prefetch(
'visits_set', queryset=Visits.objects.filter(signe_in=True)
)
)
试试这个:
McMbData.objects.filter(visits__signe_in = True)