hob*_*es3 5 python django django-templates
我明白这request.path会给我当前的URL.
我目前正在base.html使用CSS选项卡处理我的模板,我希望模板知道哪个选项卡当前处于"活动状态"并传递class="active-tab"给<a>标记.
所以我想做点什么
<a href="{% url orders_list %}"
{% if request.path = reverse('orders_list') %}
class="active-tab"
{$ endif %}
>Orders</a>
Run Code Online (Sandbox Code Playgroud)
但我相信你不能做那种if比较.我也只想要基本(?)URL忽略任何GET参数.
任何建议或提示也欢迎.提前致谢!
小智 11
基于Josh的答案,您可以使用简单的"if"标签:
{% url 'orders_list' as orders_list_url %}
<a{% if request.path == orders_list_url %} class="active"{% endif %}
href="{{ orders_list_url }}">Orders</a>
Run Code Online (Sandbox Code Playgroud)
您可以使用自定义模板标签
from django import template
register = template.Library()
@register.simple_tag
def active(request, pattern):
path = request.path
if path == pattern:
return 'active'
return ''
Run Code Online (Sandbox Code Playgroud)
然后在模板中的用法有点像这样:
{% load my_tags %}
{% url orders_list as orders %}
<li class="{% active request orders %}">
<a href="{{ orders }}"> Orders </a>
</li>
Run Code Online (Sandbox Code Playgroud)
您可以根据需要修改模板标签。