обратная связь для внешнего ключа в шаблонах Django - PullRequest
2 голосов
/ 15 ноября 2011

У меня есть 4 модели

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

, но получаю примечаниерезультат.Есть предложения?

1 Ответ

2 голосов
/ 15 ноября 2011

Если я понял, вопрос будет примерно таким:

{% 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, и я предлагаю вам использовать related_name

В представлении вы можете сделать это:

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...