django模板中外键的反向关系

django模板中外键的反向关系,django,Django,我有四种型号 Class A name Class B fk1 = FK(Class A) Class C fk = FK(Class B) Class D fk = FK(Class C) 在模板中,我想对所有这些模型使用反向关系 我试过这个 {% for que in Class A items %} {% for item in que.b.c.d_set.all %} 但请注意得到的结果。有什么建议吗?如果我理解的话,问题会是这样的: {% for

我有四种型号

Class A
    name
Class B
    fk1 = FK(Class A)
Class C
    fk = FK(Class B)
Class D
    fk = FK(Class C)
在模板中,我想对所有这些模型使用反向关系

我试过这个

{% for que in Class A items %}

{% for item in que.b.c.d_set.all %}

但请注意得到的结果。有什么建议吗?

如果我理解的话,问题会是这样的:

{% for que in a_times %}
     {% for b_item in que.b_set.all %}
          {% for c_item in b_item.c_set.all %}
               {% for d_item in c_item.d_set.all %}
                   # stuff with d_item
               {% endfor %}
          {% endfor %}
     {% endfor %}
{% endfor %}
这是因为您使用的是ForeignKey而不是OneToOneField,我建议您使用

在视图中,可以执行以下操作:

from app.models import A, D
from django.shortcuts import render

def view(request):
    data = {}
    a_itemsqs = A.objects.all() # here you filter A objects
    d_items = D.objects.filter(c__b__a__in=a_itemsqs)
    data['d_items'] = d_items
    return render(request, data, 'template.html')

这是答案,但请记住,您将进行abc*d数据库调用(换句话说,很多)。我同意Daniel的观点,最好在视图中获取项目,而不要在模板中执行此操作。我可以在视图中表示相同的内容吗?我的意思是viewsHow中的反向关系我可以知道哪些d_项与每个a_项相关。所以我可以像这样使用它:{%a在a_项%}{%d在d_的d_这个_a%}。。。{%endfor%}{%endfor%}我建议你提出一个问题,不要把它当作评论