首页 > 解决方案 > 如何检查模板上的路线?

问题描述

有谁知道如何使用 django 模板语言检查是否通过 url 路由访问模板?

这是我的情况:有这个模板article.html,当通过blog-homeurl 路由访问时显示博客的所有帖子,并且还通过 url 路由仅显示给定用户的帖子user-posts

这个模板就是这样工作的,因为定义了哪些帖子将被显示是views.py中的类。

话虽这么说,这就是我试图做的:(我知道它错了

{% if url == 'user-posts' %}
  "Some HTML h1 tag I want do be shown only when this template is accessed via 'user-posts' url"
{% endif %}

如果有的话,写这个if语句的正确方法是什么?

标签: python-3.xdjangodjango-viewsdjango-templatesdjango-urls

解决方案


当 Django 匹配一个 url 模式时,一个ResolverMatch对象被创建并在请求对象上可用request.resolver_match。可以在你的模板中查询这个ResolverMatch对象来实现你想要的,url_name属性是匹配的 url 模式的名称

{% if request.resolver_match.url_name == 'user-posts' %}

推荐阅读