django - m2m 字段上的 Django 值与基本模型上的相同查询返回的值不同
问题描述
我期待我没有得到的行为。考虑这个示例模型:
class Node(models.Model):
name = models.CharField(max_length=30) # Verbose for readability
class SpecialNode(Node):
other_attr = models.CharField(max_length=30)
class Edge(models.Model):
nodes = models.ManyToManyField(Node, related_name="edges")
我有一个给定的节点(不是 Special),我想知道哪些 Edge 没有(或确实)与 SpecialNode 连接。
如果我这样做,工作:
# All the edges except those which have a node that is a SpecialNode
Edge.objects.filter(node__id=1).exclude(nodes__specialnode__isnull=False)
Tho...这不起作用,而是返回节点的所有边缘。
Node.objects.get(id=1).edges.exclude(nodes__specialnode__isnull=False)
我不知道我遗漏了什么或误解了什么,但我希望两个句子都有一个查询集。
解决方案
推荐阅读
- binary-tree - 你如何找到完全二叉树最低层的叶子数?
- docker - 当 docker build 运行 Dockerfile 时使用来自 bitbucket 的节点缓存依赖项
- amazon-s3 - 使用 c++ S3 SDK,带有 Minio 的 ListObjecsV2 不返回任何结果
- boto3 - 如何在 Boto3 中获取模拟事件
- java - 使用 Bouncy Castle 的 ElGamal 同态乘法
- swift - SwiftUI NavigationView 垂直不适合屏幕
- python - 用 raspberrypi 和 python 读取两个红外传感器
- javascript - 无法使正则表达式匹配 HTML 表单中的所需输入
- csv - 在 Jmeter 中,我们如何使用 JSR223 预处理器解析 CSV 并过滤特定列值以将其作为变量传递给采样器
- javascript - 如何在 Codeigniter 中使用 ajax 为操作按钮添加新列以获取详细信息