2010-01-29 4 views
1

ManyToManyField가있는 장고 모델이 있는데 템플릿의 쉼표로 구분 된 목록에서 해당 필드의 내용을 반복하려고합니다. 예상치 못한 결과가 나타납니다.Django Newbie ManyToManyField Template 질문

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

콘텐츠가 데이터베이스에있는대로 표시되지만 예상치 못한 방식으로 표시됩니다. 즉. 대신 :

르네상스, 바로크, 표현주의

내가 갖는 :

R, E, N, A, I, S, S, A, N, C, E ,, B,

내가 뭘 잘못하고 있는지 알지 못한다. ? 조인 템플릿 필터가이 유형의 시나리오와 정확히 일치했을 것으로 생각 했겠지만 아마도이 작업을 수행하는 적절한 방법은 모델의 사용자 지정 메서드를 만드는 것일 것입니다 ...

답변

6

Ignacio Vasquez-Abrams는 (평소와 같이) 정확합니다. 문제에 대한 해결책은 forloop 변수에있을 수 있습니다.

<p>{% for item in painting.style.all %} 
    {{item.style}} {% if not forloop.last %}, {% endif %} 
{% endfor %}</p> 
+2

문서에 대한 링크 : http://docs.djangoproject.com/en/1.1/ref/templates/builtins/#for –

0

item.style은 문자열을 반환하기 때문에 각 문자 대신 각 문자를 , (으)로 결합합니다.

관련 문제