python - 反向 Django 管理 URL
问题描述
正如这个答案所描述的,我们可以使用url
标签来反转 Django 管理 URL。但是,在此处显示的示例中,您需要传递给的字符串中的应用程序名称和模型名称url
。有没有办法将它们作为参数传递?我想要做的是这样的:
{% url 'something here' app_name model_name object_id %}
我放'something here'
什么?
解决方案
我建议django_extensions
使用它的show_urls
命令来查找 url 名称。
简单地做
pip install django_extensions
然后添加django_extensions
到您的 INSTALLED_APPS
#settings.py
INSTALLED_APPS = [
#...
'django_extensions',
]
然后你可以运行
python manage.py show_urls
您可以使用它grep
来过滤掉您需要的相关 URL。例如
python manage.py show_urls | grep password
/admin/auth/user/<id>/password/ django.contrib.auth.admin.user_change_password admin:auth_user_password_change
/admin/password_change/ django.contrib.admin.sites.password_change admin:password_change
/admin/password_change/done/ django.contrib.admin.sites.password_change_done admin:password_change_done
并说我们想django.contrib.auth.admin.user_change_password
在我们的模板中使用:
我们可以做的:
{% url "admin:auth_user_password_change" user.pk %}
PS您的生产环境并不真正需要django_extensions
,因此您可能只想在本地安装它以供开发使用。
资源:
推荐阅读
- css - 弹出不坚持保存文本
- c# - 如何在服务器端处理新的刷新令牌?
- cmake - 如何将空元素添加到 CMake 列表?
- javascript - 将 vue-gtm(谷歌标签管理器)附加到路由器实例
- csproj - 是否可以使用新的 csproj 格式为 .NET Framework Client Profile 构建?
- sql-server - 如何在连接 sql server management studio 时解决登录问题。错误是:管道的另一端没有进程(SQL Server 2014)
- java - Java 通过值或引用传递?有人可以帮我处理这段代码吗?
- java - 为什么这个 Maven 配置文件没有运行?
- html - 哪些浏览器不支持空标签?
- powershell - 使用PowerShell在文件夹结构中获取目录用户(Get-ACL),有没有更简单的方法?