问题描述
我注册了一个自定义 Django 管理表单,如何以编程方式在视图中查找模板的 URL?
我知道我的表单位于 /admin/custom_app/horse/
,但我如何以编程方式查找它,以防将来更改 from URL?
表单的注册方式如下:
admin.site.register(Horse,HorseAdmin)
解决方法
首先确定表单的url_name
。使用表单所在位置的相对地址,并使用 resolve
查找名称,如下所示:
In [1]: from django.urls import resolve
...: match = resolve('/admin/custom_app/horse/')
...: match.url_name
...:
Out[1]: 'custom_app_horse_changelist'
现在您可以使用 reverse
来查找 URL,只需记住添加前缀 admin:
即可:
In [63]: from django.urls import reverse
...: reverse('admin:custom_app_horse_changelist')
Out[63]: '/admin/custom_app/horse/'