django - 如何通过删除另一个模型具有外键关系的结果来过滤 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)
我将如何编写过滤器以仅返回没有条目的笔记本?
解决方案
您可以.filter(…)
使用Notebook
s:
Notebook.objects.filter(entry=None)
这是有效的,因为 Django 生成了 a LEFT OUTER JOIN
,因此我们只保留entry
主键为NULL
/的记录None
。
推荐阅读
- c# - 选项卡中的复合模板错误中的文档
- amazon-web-services - 以 EC2 作为后端的 WebSocket API 实现
- python - 如何让 python unittest 仅在失败的测试中显示日志消息
- gradle - 从普通的战争包装中排除 spring boot devtools (developmentOnly) 依赖项
- apache - 如何在请求 uri 上添加路径
- python-3.x - 在 python 金字塔 web 框架中,如何在播种之前删除所有 db 表行?
- javascript - 每秒更改一次数字,但单击按钮后也会使数字下降
- python - 在没有 browsermodproxy 的情况下保存 HAR 文件
- javascript - React JS - 选择,为什么我要打印并存储在数据库中的双值
- c# - 隐式转换错误 C# netstandard2.1