我正在尝试解析这个Django代码(不熟悉Django,我可能会添加)
Question.objects.filter(children__marked=True)
我知道该模型包含一个名为“forum_node”的表,其中一个列名为“marked”。根据我的理解,该陈述提取所有其子女(=答案)被接受(或“标记”)的问题。这个神奇的工作原理如何?
答案 0 :(得分:3)
要了解会发生什么,您应该仔细查看Django解释query options and the object-relational mapping的文档。
children
指的是相关模型(question
模型上应该有一个名为children的相应m2m或外键字段,表示相关模型,例如node
)和{{ 1}}是相关模型上的字段。
答案 1 :(得分:2)
Node
模型可能包含以下内容:
question = models.ForeignKey(Question, related_name='children')
marked = models.BooleanField()
声明:
Question.objects.filter(children__marked=True)
只是在两个表上进行连接并返回至少有一个Question
模型与Node
的{{1}}模型。