Как получить доступ к свойствам "многие ко многим" через & rdquo; таблица из шаблона Django?

43
задан Alex 30 July 2010 в 02:55
поделиться

2 ответа

Самый простой способ - просто передать бэнд в шаблон. Шаблоны могут перемещаться по отношениям между моделями, и в группе есть как элементы, так и менеджеры набора запросов members_set. Вот как я бы это сделал:

view:

def group_details(request, group_id):
    group = get_object_or_404(Group, pk=group_id)
    return render_to_response('group_details.html',
                              {'group': group})

template:

<h2>{{ group.name }}</h2>
{% for membership in group.membership_set.all %}
    <h3>{{ membership.person }}</h3>
    {{ membership.date_joined }}
{% endfor %}
37
ответ дан 26 November 2019 в 21:29
поделиться

Я не уверен, что это единственное решение или нет, но передача объектов отношения в шаблон определенно работает. В вашем представлении, получите QuerySet объектов Membership:

rel = Membership.objects.filter( group = your_group ).select_related()

и передайте его в шаблон, где вы можете выполнить итерацию по нему с помощью {% for %}

{% for r in rel %}
     {{ r.person.name }} joined group {{ r.group.name }} on {{ r.date_joined }}<br />
{% endfor %}

Обратите внимание, что это не должно выполнять никаких дополнительных запросов из-за select_related().

6
ответ дан 26 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: