大家好,我实际上遇到了代码问题。我的代码是这样的。
{% 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 :(得分: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,则可能会中断。
答案 1 :(得分: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 %}