2011-04-16 44 views
2

我想在Django模板中設置和重置標誌變量。有沒有辦法做到這一點?在Django模板中設置和重置變量的值

{% for software in softwares %} 
    //here want to asign default value to flag(flag = False) 

    {% for mysoftware in mysoftwares %} 
     {% if mysoftware.name == software.name %} 
     //here want to set value to True to flag(flag = True) 
     {{ software.name }}<br /> 
     {% endif %} 
    {% endfor %} 

    //check flag here 
    {% if flag == False %} 
    Software not assigned. 
    {% endif %} 
{% endfor %} 

回答

5

有沒有辦法做到這一點,以我的知識。也許預先計算視圖中的元組列表,然後重複此操作 - 顯示結果。例如: -

{% for software, assigned in software_list %} 
    {% if assigned %} 
    {{ software.name }} 
    {% else %} 
    Software not assigned 
    {% endif %} 
{% endif %} 

然後,在你看來,只是一個簡單的Python結構填充software_list數據:

names = [mysoftware.name for mysoftware in mysoftwares] 
software_list = [(software, software.name in names) for software in softwares] 

並添加到您的環境。

試圖在模板中做太多事情往往很誘人,而這並不是他們真正想要的。如果您將自己的邏輯保存在python中,那麼它的可讀性要好得多。