比较Django模板中的URL
在django模板中,如果url/路径是特定的,我不想显示某些元素。在伪文本中:比较Django模板中的URL,django,django-templates,django-urls,Django,Django Templates,Django Urls,在django模板中,如果url/路径是特定的,我不想显示某些元素。在伪文本中: {% if not url = account:detail %} 在这里,我们可以通过两个步骤来实现这一点: 首先,我们生成url,并将其分配给一个变量(这里是url2);及 接下来比较URL 因此: {%url帐户:详细信息为url2%} {%if url!=url2%} {%endif%} 但是请注意,如果两个URL在语法上不同(例如yourdomain.com/foo和/foo),则它们本身指向不同的内
{% if not url = account:detail %}
在这里,我们可以通过两个步骤来实现这一点:
url2
);及{%url帐户:详细信息为url2%}
{%if url!=url2%}
{%endif%}
但是请注意,如果两个URL在语法上不同(例如yourdomain.com/foo
和/foo
),则它们本身指向不同的内容
如果你想访问当前路径,你可以像@RajaSimon所说的那样,通常使用
request.path
(假设你使用RequestContext
,render(…)
,或者另一种传递request
对象的方式来呈现模板)。你可以给你的url一个名称(url\u name)在URL.py文件中,然后可以使用模板中可用的对象直接进行比较
from django.urls import path
from . import views
urlpatterns = [
path('articles/<int:year>/', views.year_archive, name='news_year_archive'),
# ...
]
@user3541631:您的评论很混乱,请您重新阅读,并修复“语法”好吗?@user3541631您可以使用
请求获取当前页面url。path
这就是您要问的吗?如果是这样,您的条件应该是{%If request.path!=account\u detail\u url%}
@WillemVanOnsem-我想检查当前url/页面是否与预定义页面相同。我可以从request.path获取的当前页面/url。要将request.path与“account:detail”进行比较,我想我需要“解决”,不是吗?但是我如何在模板中设置resolve?@user3541631:但是您在模板中解析它,我们在这里解析它,路径存储在url2
变量中。因此,您可以在模板中比较{%if request.url!=url2%}
@user3541631,您可以使用url
模板内置来解析。
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 %}