Джанго Многие ко Многим в шаблоне - PullRequest
2 голосов
/ 20 сентября 2010

Это мой шаблонный тег в forloop

{{ product.feature_set.all.1.value }}

Я хочу изменить число 1 на forloop.counter.это возможно?

как:

{{
product.feature_set.all.forloop.counter.value
}}

Это не работает, но есть ли способ сделать это?

Ответы [ 2 ]

8 голосов
/ 20 сентября 2010

Это не имеет смысла.Вы должны пройтись по самому набору запросов.

{% for feature in product.feature_set.all %}
    {{ feature }}
{% endfor %}
4 голосов
/ 21 сентября 2010

Поскольку ответ @ Daniel не удовлетворяет вас, я подумал, что вы, возможно, захотите написать собственный фильтр. Вот черновик:

@register.filter
def custom_m2m(queryset, forloop_counter):
    return queryset[forloop_counter].value

Вы можете использовать его в своем шаблоне так:

{% for ... %}
    {{ product.feature_set.all|custom_m2m:forloop.counter }}
{% endfor %}
...