Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一个「;app";Django模板中的标记_Python_Django_Django Templates - Fatal编程技术网

Python 是否有一个「;app";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

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
我使用以下方法完成此操作:

{% 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应用中的“当前视图”。