django - 如何通过request.path检查包含参数的路径?
问题描述
在我的questions
应用程序中,url_patterns
inmodels.py
是:
urlpatterns = [
path('<int:question_id>/' , views.question , name='question'),
path('new/' , views.new_question, name='newquestion'),
path('edit/<int:question_id>/', views.edit , name='edit'),
]
在我的模板中,每当我想检查newquestion
url 是否已加载时,我都会尝试以下操作:
{% if 'questions/new' in request.path %}
some code
{% endif %}
如何检查question
包含整数参数的 url 是否已加载 - 的question_id
-
解决方案
如果确实需要,可以使用request.resolver_match
[Django-doc]获取ResolverMatch
对象 [Django-doc],然后获取.view_name
属性 [Django-doc]来获取 , 等的名称,所以:path
url
re_path
{% if request.resolver_match.view_name == 'edit' %}
…
{% endif %}
但是话虽这么说,通常如果您的模板需要检查,您应该使用不需要检查的单独模板,特别是因为路径的数量会增加,最终您将更改路径、视图等。通过使用不同的那些,你的影响很小。
推荐阅读
- python - Geopy,检查城市,避免重复,熊猫
- javascript - 如何正确等待状态更新/渲染而不是使用延迟/超时功能?
- html - 如何更改剪切路径的背景颜色
- android - 使用 Firestore 子集合填充 RecyclerView?
- .net - 使用 HtmlRenderer.PdfSharp 将图像加载到 PDF 时出现问题
- flutter - 扩展的 Raisebutton 颤振
- postfix-mta - POSTFIX:对于给定的发件人,只允许来自同一域的一组收件人
- javascript - 无法使用 play() 函数在 React Typescript 中播放音频 错误:属性“播放”不存在
- docker - Netflix 指挥服务器本地 docker 容器不健康
- r - 如何在数据框中为类似字符串创建唯一名称?