比较 Django 模板中的网址



在 django 模板中,我不想显示一些元素,以防 url/path 是特定的。伪:

{% if not url = account:detail %}

我们可以在这里分两步完成:

  1. 首先,我们重新指定URL,并将其分配给一个变量(此处url2(;
  2. 接下来比较网址

所以:

{% url account:detailas url2%}
{% if url != url2 %}
<!-- ... (do something) ... -->
{% endif %}

但请注意,如果两个 url 在语法上不同(例如yourdomain.com/foo/foo(,它们本身指向不同的东西。

如果你想访问当前路径,你可以 - 就像@RajaSimon所说的,通常使用request.path(假设你用RequestContextrender(..)或其他方式来传递request对象来渲染模板(。

您可以在 urls.py 文件中为您的 url 命名 ( url_name (,然后您可以使用模板中可用的对象直接进行比较HttpRequest.resolver_match。

from django.urls import path
from . import views
urlpatterns = [
path('articles/<int:year>/', views.year_archive, name='news_year_archive'),
# ...
]

在模板中,您可以像这样比较它,

{% if request.resolver_match.url_name == "news_year_archive" %}
...your stuff
{% endif %}

相关内容

  • 没有找到相关文章

最新更新