Python 是否有一个「;app";Django模板中的标记
Django模板中是否有显示当前应用程序(例如博客)的标记 所以我可以做一些像Python 是否有一个「;app";Django模板中的标记,python,django,django-templates,Python,Django,Django Templates,Django模板中是否有显示当前应用程序(例如博客)的标记 所以我可以做一些像 <nav> <li {% if request.app == "index" %}class="selected"{% endif %}>Home</li> <li {% if request.app == "blog" %}class="selected"{% endif %}>Blog</li> </nav> Home blog
<nav>
<li {% if request.app == "index" %}class="selected"{% endif %}>Home</li>
<li {% if request.app == "blog" %}class="selected"{% endif %}>Blog</li>
</nav>
Home
blog
我使用以下方法完成此操作:
{% if request.path|startswith:"/blog/" %}class="selected"{% endif %}
这意味着要添加以下模板标记:
@register.filter
def startswith(value, arg):
"""Usage, {% if value|starts_with:"arg" %}"""
return value.startswith(arg)
你可以随时在上下文中发送应用程序名称,或者编写一个模板上下文处理器,将应用程序名称注入上下文中,但我必须在每个视图中执行此操作-打破Django的枯燥原则。你最好查看当前URL以确定页面是否处于“活动”状态,而不是试图检查apps@jdborg这就是模板上下文处理器的功能。这里没有“当前应用”,只有Django应用中的“当前视图”。