如所述 this answer ,我们可以使用 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
使用它过滤掉您需要的相关网址。例如
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 %}
附言你真的不需要django_extensions
用于您的生产环境,因此您可能希望在本地安装它,仅供开发使用。 资源:
django_extensions installation documentation
django_extensions commands
关于python - 反向 Django 管理 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711082/