【发布时间】:2023-04-03 06:08:01
【问题描述】:
我想根据变量是否存在为变量分配不同的值,这可能吗?我的非工作示例可能会更清楚:
{% if username %}
{% with menu_user=username %}
{% elif recent_users %}
{% with sorted_users=recent_users|dictsortreversed:"timestamp" %}
{% with menu_user=sorted_users.0.username %}
{% endif %}
{% if menu_user %}
<div id="menu">
<ul>
<li><a href="/user/{{ menu_user|urlencode }}">Profile</a></li>
<li><a href="/user/{{ menu_user|urlencode }}/products/">Products</a></li>
</ul>
</div>
{% endif %}
{% if recent_users %}
{% endwith %}
{% endif %}
{% endwith %}
我尝试做的伪代码:
if username:
menu_user = username
elif recent_users:
menu_user = sorted(recent_users)[0]['username']
if menu_user:
<div id="menu">
<ul>
<li><a href="/user/{{ menu_user|urlencode }}">Profile</a></li>
<li><a href="/user/{{ menu_user|urlencode }}/products/">Products</a></li>
</ul>
</div>
【问题讨论】:
-
你应该把这种逻辑放在 view 层。尽量保持模板尽可能简单。
-
@seler 问题是每个页面都应该呈现这个并且会有很多样板代码,这就是为什么我只希望它在基本模板中的一个位置。
标签: django django-templates django-1.4