【问题标题】:How to get related set models without hit database in Django如何在没有命中数据库的情况下在 Django 中获取相关的集合模型
【发布时间】:2014-02-21 06:09:20
【问题描述】:

在这里,您总是会得到两个单独的数据库调用,并且在任何地方添加 select_related() 根本无济于事。一个额外的数据库调用并不重要。

<ul>
{% for obj in myobjects %}
    <li>{{ myobj.name }}</li>
    <ul>
         {% for relobj in myobj.backwardsrelationship_set.all %} {# hit database at every row #}
         <li>{{ relobj.name }}</li>
         {% endfor %}
    </ul>
{% endfor %}
</ul>

这里有什么想法吗?

【问题讨论】:

  • 为什么select_related 没有帮助?

标签: django django-models django-queryset django-select-related django-related-manager


【解决方案1】:

我找到了解决办法。

prefetch_related可以解决这个问题

Publisher.objects.filter(city='NY').prefetch_related('book_set')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多