【发布时间】:2012-02-17 00:20:20
【问题描述】:
我正在处理一个 Django 项目,并且我使用 get_urls override method described in the documentation 创建了一些自定义管理视图。它完美地工作。只有一个问题。除非您已经知道 URL,否则无法访问此自定义管理视图。
我已经知道有一些方法可以在管理员的某处添加指向此视图的链接,但没有一种方法令人满意。我希望所有模型管理员都可以在模型列表中显示自定义视图的链接。我只是不希望它旁边有 +add 或 +change 链接,因为它不是模型。
我可以直接覆盖 admin_site 或模板,但这并不好。它将定制放在项目级别而不是应用程序级别。它也只会将链接放在 /admin/ 页面上,而不是 /admin/myapp/ 页面上。
我也可以通过覆盖 app_index.html 模板轻松地将链接添加到不同的位置,但这并不是一个方便或直观的查找位置。
我想出的另一个解决方案是创建一个空白模型并为其注册一个空白管理员。然后窃取该模型的 url 模式,因此单击其条目会转到我的自定义视图,而不是空白的添加/更改视图。这行得通,但它是一个非常丑陋的 hack。
这是我正在努力实现的目标的图片。
【问题讨论】:
标签: python django django-admin