2014-04-18 2 views
0

나는 텍스트 파일을 구축하기 위해 장고 템플릿 엔진을 사용하고 싶습니다 :, 루프의 마지막 항목의 줄 바꿈을 제거하는 방법을

from django.template import Template, Context 
from django.conf import settings 
settings.configure() 
with open('etchosts') as fh: 
    t = Template(fh.read().strip()) 
    c = Context({'hosts': ['host A','host B', 'host C']}) 
    print t.render(c) 

그리고 :이 스크립트를 작성

템플릿 파일 "etchosts"

================================= 
- host A 
- host B 
- host C 
       <----- unwanted newline 
================================= 
: 나는 내가 가진 스크립트를 실행하는 경우

================================= 
{% for h in hosts %} - {{ h }} 
{% endfor %} 
================================= 

당신이 가지고있는 루프

어떻게 내 템플릿을 변경할 수의 끝에서 원치 않는 줄 바꿈있다시피 :

================================= 
- host A 
- host B 
- host C 
================================= 

은?

답변

2

for 루프에는 forloop이라는 추가 개체가 있습니다. 여기에는 루프에 대한 정보가 포함되어 있습니다. this documentation page을 참조하십시오. 귀하의 경우에는

이 코드는이 같은 것입니다 :

================================= 
{% for h in hosts %} - {{ h }}{% if not forloop.last %} 
{% endif %}{%endfor %} 
================================= 

질문은, 위의 청소기는 현재 솔루션 다음입니까? 개인적으로 나는 위의 솔루션에서 여분의 코드가 사물을 엉망으로 만들 것이라고 생각하지만 이는 개인적인 취향이다. 그러나 이것은 유효한 대체 방법입니다 (그리고 보너스로 이제는 forloop 객체에 대해 알게되었습니다).

0
================================= 
{% for h in hosts %} - {{ h }} 
{% endfor %}================================= 

답이 맞습니까?

2

{% if forloop.last %}을 사용하면 마지막 반복 여부를 확인할 수 있습니다. the docs for for을 참조하십시오.

관련 문제