python - 反向 Django 管理 URL

标签 python django django-templates

如所述 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/

相关文章:

python - 如何将函数的参数变量传递给装饰器?

python for循环在项目之间添加逗号

python - 如何修复django模板中的html代码

python - Django 找不到应用程序模板

python - 根据 Python 中的其他值创建一个简短的唯一 ID?

python - 将数组写入文本文件

python - 在 Django 中保存文件之前更改文件名

python - Django 根据 url 请求预填写表单下拉框

python - Django ModelMultipleChoiceField 不显示正确的选择名称

python每3次迭代添加一个新的div