开发者

Using complex variables in django templates

In t开发者_JAVA百科he template below, user.group is a number and it has to be shown as group_name.get(user.group) Are there any ability to pass to template group_name dict and use group_name.get(user.group) inside template?

<table>
{% for user in users %}
<tr>    
    <td>{{ user.name }}</td>
    <td>{{ user.age }}</td>
    <td>{{ user.group}}</td>
</tr> 
{% endfor %}
</table>


In the spirit of django this logic should live in the code, not in the template. Can't you add a method user.get_group() that returns the group?


No, the dot notation doesn't allow for looking up names by variable value.

I would do this in the view, if it's specific to this one template.

for user in users:
    users.group_name = group_name.get(user.group)


{% for user in users %}
    {{ user.group_name }}
{% endfor %}

If it's applicable to all users, do as jammon suggested and define a method on User

Out of curiosity, can I see your models? Just curious why group is a number and where group_name comes from.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜