Django中的“children__”是什么意思?它在哪里记录?

时间:2011-03-20 14:56:42

标签: python django

我正在尝试解析这个Django代码(不熟悉Django,我可能会添加)

Question.objects.filter(children__marked=True)

我知道该模型包含一个名为“forum_node”的表,其中一个列名为“marked”。根据我的理解,该陈述提取所有其子女(=答案)被接受(或“标记”)的问题。这个神奇的工作原理如何?

2 个答案:

答案 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}}模型。