首页 > 解决方案 > 如何通过删除另一个模型具有外键关系的结果来过滤 Django 查询集?

问题描述

使用以下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)

我将如何编写过滤器以仅返回没有条目的笔记本?

标签: djangodjango-modelsdjango-queryset

解决方案


您可以.filter(…)使用Notebooks:

Notebook.objects.filter(entry=None)

这是有效的,因为 Django 生成了 a LEFT OUTER JOIN,因此我们只保留entry主键为NULL/的记录None


推荐阅读