在一个项目中工作,在那里我遇到了QuerySets的一个小问题。(请查看底部的模型结构简图。)我尝试从Collection-Model开始查询BLOG-Model的一些信息。现在最好先查询entry - model,然后以某种方式找到Collection,然后再找到Blog-Model,最后将信息添加到Collection中?或者是否有更好/更快的方法直接从父模型获取信息?通常情况下,如果你只有1:n->1:n关系,这很容易,因为你可以很容易地遵循外键,但这让我困惑。
这里是我的模型结构的简短概述:
<--------------- QUERY DIRECTION ----------------
(BLOG) --(1:N)--> (ENTRIE) <--(N:1)-- (COLLECTION)
BR,菲利克斯
django的关系是双向的,所以如果你需要从集合模型中查询博客模型,你可以直接从你的图表中查询你的博客模型:
class Blog:
entrie = models.ForeignKey(Entrie, on_delete=CASCADE)
class Entrie:
pass
class Collection:
entrie = models.ForeignKey(Entrie, on_delete=CASCADE)
所以你的查询可以是这样的,如果你没有指定任何related_name
属性在你的模型关系字段
Blog.objects.filter(entrie__collection={your_data})