如何在 Django 模板中将 URL 传递给模板过滤器

A.J*_*.J. 1 django templates filter

我遇到了一种让我感到震惊的情况,并正在寻找更好的方法来应对。我有一个<li>HTML 格式的。我想添加class="active"某个 URL 是否打开。

例子

如果登录页面打开,这意味着/login/我的 request.path 中有 href。

为此,我编写了一个模板过滤器,我这样称呼它。

{% if request|is_open:"login" %}
    <li class="active">
        {% else %}
    <li>
{% endif %}
<a href="{% url 'login' %}">Login Here</a>
</li>
Run Code Online (Sandbox Code Playgroud)

但我需要一种更干净的方式来处理它。我可以传递{%url 'login' %}给模板过滤器吗?这样我就可以将该命名 url 传递给模板过滤器,它让我知道这是否是已打开的 url。

现在,这项工作确实是硬编码的,我想改变这一点。

bru*_*ers 5

{% url 'login' as login_url %}
<li {% if request|is_active:login_url %}class="active" {% endif %}
  ...
</li>
<a href="{{ login_url }}">Login here</a>
Run Code Online (Sandbox Code Playgroud)