python-3.x - 如何检查模板上的路线?
问题描述
有谁知道如何使用 django 模板语言检查是否通过 url 路由访问模板?
这是我的情况:有这个模板article.html
,当通过blog-home
url 路由访问时显示博客的所有帖子,并且还通过 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语句的正确方法是什么?
解决方案
当 Django 匹配一个 url 模式时,一个ResolverMatch
对象被创建并在请求对象上可用request.resolver_match
。可以在你的模板中查询这个ResolverMatch
对象来实现你想要的,url_name
属性是匹配的 url 模式的名称
{% if request.resolver_match.url_name == 'user-posts' %}
推荐阅读
- sql - 在plsql中聚合
- javascript - 如何使用输入中的变量并在 Electron 中启动 shell 脚本
- scala - 如何在 Spark Scala 中按第 n 个分隔符拆分行
- javascript - 无法使用 onclick 函数访问先前在类上设置的变量
- ios - IOS 应用程序在允许访问地址簿时关闭
- css - 如何在移动视图中忽略 br 标签
- asp.net - ASP.NET 中存在大量并发数据库连接的问题
- r - R使用字符串作为列名将字符串拆分为列,并使用任何数字作为这些列中的值
- autodesk-forge - 在 Autodesk Forge Viewer 中旋转模型
- django - django-filters:预清理过滤器集字段