给出了以下模型:
class Copy(CommonLibraryBaseModel):
lecture = models.ForeignKey('Lecture', ...)
signature = models.CharField(max_length=100, ...)
class Lecture(CommonLibraryBaseModel):
category = models.ForeignKey('LectureCategory', ...)
class LectureCategory(CommonLibraryBaseModel):
parent = models.ForeignKey('self', ...)
display_name = models.CharField(max_length=100, ...)
我基本上想做以下查询:
SELECT signature, display_name FROM lecturecategory as lc, lecture as l, copy as c WHERE lc.id = l.category_id AND c.lecture_id = l.id AND lc.parent_id=2;
在Django我该怎么做?我想不出如何把不同的模型结合起来。你知道吗
谢谢你的帮助!你知道吗
将是:
如果要在结果中使用dictionnary的查询集,请使用values而不是values\u list。值列表返回一个元组。 Documentation about lookup relationship
您可以使用以下筛选器获得
Copy
实例的查询集有关详细信息,请参阅lookups that span relationships上的文档。你知道吗
然后可以循环查询集,并使用外键访问相关的讲座和讲座类别。你知道吗
最后,您可以将初始查询更改为使用
select_related
,以便Django使用内部连接来获取讲座和类别,而不是单独的查询:相关问题 更多 >
编程相关推荐