如何通过删除另一个模型具有 ForeignKey 关系的结果来过滤 Django 查询集?
How do I filter a Django Queryset by removing results in which another model has a ForeignKey relationship?
与以下 models.py ...
from django.db import models
class Notebook(models.Model):
name = models.CharField(max_length=255)
class Entry(models.Model):
notebook = models.ForeignKey(Notebook, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
我如何只对 return 没有条目的笔记本编写过滤器?
您可以 .filter(…)
Notebook
与:
Notebook.objects.filter(<b>entry=None</b>)
这是可行的,因为 Django 生成了 LEFT OUTER JOIN
,因此我们只保留 entry
主键为 NULL
/None
.[=17 的记录=]
与以下 models.py ...
from django.db import models
class Notebook(models.Model):
name = models.CharField(max_length=255)
class Entry(models.Model):
notebook = models.ForeignKey(Notebook, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
我如何只对 return 没有条目的笔记本编写过滤器?
您可以 .filter(…)
Notebook
与:
Notebook.objects.filter(<b>entry=None</b>)
这是可行的,因为 Django 生成了 LEFT OUTER JOIN
,因此我们只保留 entry
主键为 NULL
/None
.[=17 的记录=]