2015-06-29 36 views
0

嗨,大家好,以改變該值。我的代碼是這樣的。我想用for循環其實我有我的代碼的麻煩

{% for activity in activityDoneList %} 
    <tr> 
     <td><a href="{% url 'activity:update' activity.pk %}">{{ activity.title }}</a> </td> 
     <td width="10%">{{ activity.status }}</td> 
     <td width="10%">{{mission.name}}</td> 
     <td width="10%">{{ activity.time_from }}</td> 
     <td width="10%">{{ activity.time_to }}</td> 
     <td width="10%">{{ activity.date_exec }}</td> 
    </tr>   
    {% endfor %} 

例如。這activity.status是整數,如1,2,3 我要的是有,而不是顯示這些數字輸出,它只是通過這樣的:

if activity.status==1: 
     activity.status="Done" 
elif activity.status ==2: 
     activity.status="Running" 
else: 
     activity.status =="Not Yet" 

請幫我這個代碼。

+0

也許選擇小部件會對你有好處? – aiho

回答

2
{% for activity in activityDoneList %} 
    <tr> 
     <td><a href="{% url 'activity:update' activity.pk %}">{{ activity.title }}</a> </td> 
     {% if activity.status == 1 %} 
     <td width="10%">Done</td> 
     {% elif activity.status == 2 %} 
     <td width="10%">Running</td> 
     {% else %} 
     <td width="10%">Done</td> 
     {% endif %} 
     <td width="10%">{{mission.name}}</td> 
     <td width="10%">{{ activity.time_from }}</td> 
     <td width="10%">{{ activity.time_to }}</td> 
     <td width="10%">{{ activity.date_exec }}</td> 
    </tr> 
{% endfor %} 

這將完成你正在尋找的東西,但它是相當馬虎。最好在你的服務器上完成這個工作。這實際上不是Jinja的目的。

您也可以使用JavaScript來改變數值,但如果你的用戶有JS禁用,這可能打破。

0

您可以用模板標記的幫助下做到這一點。

activity_tags.py

from django import template  

register = template.Library() 

@register.simple_tag() 
def get_activity_status_value(status): 
    if status==1: 
     value="Done" 
    elif status ==2: 
     value="Running" 
    else: 
     value ="Not Yet" 
    return value 

get_activity_status_value模板標籤帶有活動狀態的參數,並返回取決於狀態的值相應的值。

然後在你的模板,你可以直接使用這個模板標籤,並將其傳遞activity.status和適當的值將顯示。

{% load activity_tags %} 

{% for activity in activityDoneList %} 
    <tr> 
     <td><a href="{% url 'activity:update' activity.pk %}">{{ activity.title }}</a> </td> 
     <td width="10%">{% get_activity_status_value activity.status %}</td> 
     <td width="10%">{{mission.name}}</td> 
     <td width="10%">{{ activity.time_from }}</td> 
     <td width="10%">{{ activity.time_to }}</td> 
     <td width="10%">{{ activity.date_exec }}</td> 
    </tr>   
{% endfor %}