【问题标题】:Django QuerySet from one-to-many and from many-to-oneDjango QuerySet 从一对多和从多对一
【发布时间】:2021-09-26 07:32:21
【问题描述】:

在做一个项目时,我遇到了 QuerySets 的一个小问题。 (看底部是我的模型结构的简图。)我尝试从Collection-Model开始查询BLOG-Model的一些信息。现在最好先查询Entrie-Model并以某种方式找到Collection,然后再找到Blog-Model并将信息最后添加到Collection中?还是有更好/更快的方法直接从父模型获取信息?通常,如果您只有 1:n->1:n 关系,这很容易,因为您可以轻松地跟踪外键,但这让我感到困惑。

这里是我的模型结构的简短概述:

<--------------- QUERY DIRECTION ----------------
(BLOG) --(1:N)--> (ENTRIE) <--(N:1)-- (COLLECTION)

BR,菲利克斯

【问题讨论】:

    标签: django django-queryset one-to-many many-to-one


    【解决方案1】:

    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})
    

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 2015-07-05
      • 2013-11-07
      • 1970-01-01
      • 2014-03-06
      • 2011-11-27
      • 2017-05-15
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多