我有以下两个查询集作为django模型的属性
1 - Comment.objects.filter(ForeignKeyField=self)
2 - Comment.objects.filter(ForeginKeyField=self.id)
我不是为什么这两行都给出相同的结果,即CommentObjectList ?为什么我可以用self和self过滤Comment Resultset。我都要??
FK字段实际上保存了相关记录的主键。所以
Comment.objects.filter(ForeginKeyField=self.id)
应该给出您想要的结果(假设这里的self
是外键模型的实例)
Comment.objects.filter(ForeginKeyField=self)
将尝试填充整个实例并匹配它,因此您将与FK对象的实例匹配int
或UUID
(取决于您拥有的键类型),当然这将不匹配。
旁注:Django中的字段名应该使用下划线,按照惯例,应该是foreign_key_field
,而不是ForeignKeyField
。