python 比较django模板中的编号url

k2arahey  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(175)

“在www.example.com中urls.py,我有:

path("viewer/<str:case>", views.viewer, name="viewer"),

当我转到查看器时,这是有效的:

<a class="nav-link dropdown-toggle {% if request.resolver_match.url_name == "viewer" %}active{% endif %}">

现在,导航栏中有一个列出案例的子菜单。我需要知道我在哪个特定页面上激活其中一个菜单项:

{% for item in cases %}   
<li>
  <a class="dropdown-item {% if request.get_full_path == "/viewer/{{ item.id }}" %}active{% endif %}" href="/viewer/{{ item.id }}">{{ item.patient_name }}</a>
</li>

例如,request.get_full_path返回/viewer/47,而其中一个项目的ID为47。我尝试了不同的组合来代替“/viewer/{{item.id}}",但没有任何效果。

rvpgvaaj

rvpgvaaj1#

我最终创建了一个自定义模板标记:

tags.py:
@register.simple_tag
def url_case_id(value):
    return int(value.split("/")[2])

并在html中使用它:

{% for item in cases %}  
{% url_case_id request.get_full_path as id %} 
<li>
  <a class="dropdown-item {% if id == item.id %}active{% endif %}" href="/viewer/{{ item.id }}">{{ item.name }}</a>
</li>

相关问题