gpt4 book ai didi

django - 独立于应用程序的 django admin 上的新 URL

转载 作者:行者123 更新时间:2023-12-04 11:56:28 25 4
gpt4 key购买 nike

我正在使用 django 1.4 和 Python 2.7。

我只有一个简单的要求,我必须向 django 管理应用程序添加一个新的 URL。我知道如何添加自定义应用程序的 URL,但我无法弄清楚如何添加管理应用程序的 URL。请指导我完成这个。

基本上完整的 URL 应该类似于 admin/my_url .

更新

我想要一种方法,之后我也可以使用管理员反向映射 URL。

最佳答案

对于 Jingo 对您原始问题的回答,+1。考虑到您对答案的澄清评论:
这样的 URL 不是“独立于应用程序”,而是应用程序“管理员”的 URL。

通过覆盖 get_urls() 向管理站点添加 URL 类似于 ModelAdmin:
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-views-to-admin-sites

编辑:

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.AdminSite

是一个管理站点,默认情况下,“该”管理站点被实例化为“django.contrib.admin.site”(然后例如您的 ModelAdmin 是针对该站点注册的)。所以你可以为你自己的 MyAdminSite 子类化 AdminSite 并在那里重新定义 get_urls() :

from django.contrib.admin import AdminSite

class MyAdminSite(AdminSite):
def get_urls():
...


...
my_admin_site = MyAdminSite()
...
my_admin_site.register(MyModel, MyModelAdmin)

确保您现在在 urls.py 中使用 my_admin_site :
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#hooking-adminsite-instances-into-your-urlconf

关于 get_urls() 的实际内容,见
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls
(当然调用 MyAdminSite 的 super() )。还要注意那里提到的方便的“admin_view”包装器。

PS:理论上,您也可以只定义 get_urls() 然后对默认管理站点进行猴子补丁,以便它使用您的 get_urls() 但我不知道这是否真的有效 - 您可能必须在它之后立即进行猴子补丁“第一个”导入...

关于django - 独立于应用程序的 django admin 上的新 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11288320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com