2013-02-21 2 views
0

나는 내 html 파일에 다음과 같습니다 (그게 전부 문자열에 포함 된 내용 때문에) 브라우저에 단어 성공을 인쇄합니다 장고 문은 예상대로 작동하지 않는 경우

{% trans "Result: "%} {{result}} 

그러나 다음과 같이하면 :

{% if result == 'SUCCESS' %} 
    do something 
{% else %} 
    do something else 
{% endif %} 

if 문이 예상대로 작동하지 않습니다.

왜 이가요 ??

+0

'repr (result) == "SUCCESS '"'(예 : 다른 유형이 아니고 공백이 없습니까?) –

+0

비슷한 질문이 이미 답변되었습니다 [here] (http://stackoverflow.com/a/3732245/912039). –

답변

2

if 문이 올바르게 작동합니다. 문제는 문자열에 관한 것이어야합니다. 어쩌면 그것은 문자열이 아닐 수도 있습니다.

{% ifequal result 'SUCCESS' %} 
    do something 
{% else %} 
    do something else 
{% endifequal %} 

당신은 다른 일을 시도 할 수 있습니다 :

ifequal templatetag을보십시오. 당신이보기에 result을 지정하는 경우, 당신은 바로 그 같은 관점에서 문자열의 유효성을 검사 할 수 있습니다 : 그것은 상황에 맞는 프로세서의 경우

def my_view(request): 
    # ... processing ... 
    result = something() 

    # Let's make sure it's a string containing 'SUCCESS' 
    assert type(result) == str 
    assert result == 'SUCCESS' 

당신은 동일한 논리를 적용 할 수 있습니다. https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#ifequal

관련 문제