Django Newbie ManyToManyField Шаблон Вопроса - PullRequest
2 голосов
/ 29 января 2010

У меня есть модель Django с ManyToManyField, и я пытаюсь перебрать содержимое этого поля в списке через запятую в моем шаблоне. Я получаю неожиданные результаты.

{% for painting in paintings_list %}
    <p>{% for item in painting.style.all %}
        {{ item.style|join:', ' }}
    {% endfor %}</p>
{% endfor %}

Содержимое отображается в том виде, в котором оно существует в базе данных, но отображается непредвиденным образом ... т.е. вместо:

Ренессанс, Барокко, Экспрессионизм

Я получаю:

R, E, п, а, я, с, с, а, п, с, е ,, В, а, г, о, д, и, е ,, Е, х, р, г, е , s, s, I, O, N, I, s, T

Есть идеи, что я делаю не так? Можно было бы подумать, что фильтр шаблона объединения предназначен именно для этого типа сценария, но, возможно, правильный способ сделать это - создать собственный метод модели ...

Ответы [ 2 ]

7 голосов
/ 29 января 2010

Игнасио Васкес-Абрамс правильный (как обычно). Решение вашей проблемы может заключаться в переменных forloop.

<p>{% for item in painting.style.all %}
  {{item.style}} {% if not forloop.last %}, {% endif %}
{% endfor %}</p>
0 голосов
/ 29 января 2010

item.style возвращает строку, поэтому вы присоединяете каждый символ с , вместо каждого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...