2013-02-21 52 views
0

我在我的HTML文件如下:的Django是否如預期般的語句不工作

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

這將打印出來的字成功在瀏覽器上(因爲多數民衆贊成字符串包含)

但是,如果我執行以下操作:

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

我發現if語句無法正常工作。

這是爲什麼?

+0

'repr(result)==「'SUCCESS'」'(例如不是一個不同的類型,沒有空格)? – 2013-02-21 18:34:57

+0

一個類似的問題已經回答[這裏](http://stackoverflow.com/a/3732245/912039)。 – 2013-02-21 18:36:34

回答

2

if聲明正常工作。你的問題必須是關於字符串。也許這根本不是一個字符串。

嘗試ifequal templatetag:

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

你可以嘗試不同的東西。如果你在一個視圖分配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