2014-02-21 4 views
0

저는 장고 템플릿에서 작업 중이며, 부울 값을 확인하고 True이면 'bold'를, 그렇지 않으면 'plain'을 인쇄하려고합니다. 값이 비어 있거나 정의되지 않은 경우이를 사실 인 것으로 간주합니다. , something.boolean가 정의되지 않은 경우, 그러나Django 템플릿에서 거짓이 아닌 기본 부울

{{ something.boolean_val|yesno:"bold,plain,bold" }} 

이 없음,이 같은 거짓없는 치료되지 것 : 여기가 현재 사용하고있는 무슨이다. |default_if_none 필터를 추가하려고 시도했지만 아무 것도하지 않았습니다. |default을 시도했을 때 False 값도 변경되었습니다.

문서를 더 자세히 살펴보면 정의되지 않은 변수는 기본적으로 ''으로 설정되어 있으며 False로 처리됩니다. 나는 정의되지 않은 변수를이 특정 상황에서 True (아무 것도 없을 것입니다)로만 처리하기를 원하므로 TEMPLATE_STRING_IF_INVALID으로 피들링하고 싶지는 않습니다.

정의되지 않은 변수를 True로 처리하는 방법이 있습니까? 또는 ''을 False와 구별 할 수있는 방법이 있습니까?

답변

1

필자는 템플릿 언어 로직에서 '=='을 사용할 수 있습니다. '=='는 파이썬에서 '==='또는 'is'와 같고 None 또는 ''와 False를 비교하지 않습니다 'not'를 사용하는 방법.

{% if something.boolean_val == False %}plain{% else %}bold{% endif %} 
+0

나는 'if's로 조금 둘러 보았지만,이 특별한 설정을 강타하지 않아야합니다. '=='이'==='와 동일하다는 것을 깨닫지 못했습니다. 아마 그 이유 일 것입니다. 어쨌든, 이것은 효과가있는 것 같습니다. 감사! – StephenTG

관련 문제