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

django admin上独立于应用程序的新URL,django,django-admin,python-2.7,django-urls,django-1.4,Django,Django Admin,Python 2.7,Django Urls,Django 1.4,我正在使用django 1.4和Python 2.7 我只是有一个简单的要求,我必须添加一个新的网址到django管理应用程序。我知道如何添加自定义应用程序的URL,但我不知道如何添加管理员应用程序的URL。请引导我通过这个 基本上,完整的URL应该类似于admin/my\u URL 更新 我想要一种方法,之后我还可以使用admin反向映射URL。只需将所需的URL映射放在根URL.py中的admin映射之前。将获取请求的第一个匹配项,因为django从上到下进行url映射。请记住,您不使用管理

我正在使用django 1.4和Python 2.7

我只是有一个简单的要求,我必须添加一个新的网址到django管理应用程序。我知道如何添加自定义应用程序的URL,但我不知道如何添加管理员应用程序的URL。请引导我通过这个

基本上,完整的URL应该类似于
admin/my\u URL

更新


我想要一种方法,之后我还可以使用admin反向映射URL。

只需将所需的URL映射放在根URL.py中的admin映射之前。将获取请求的第一个匹配项,因为django从上到下进行url映射。请记住,您不使用管理员通常需要或提供的url,因为它永远不会与前面的自定义映射匹配。嗯

+1了解Jingo对您最初问题的回答。考虑到您对答案的澄清意见: 这样的URL不是“独立于应用程序”,而是应用程序“admin”的URL

将URL添加到管理站点类似于ModelAdmin,方法是覆盖get_URL():

编辑:

是一个管理站点,默认情况下,“管理站点”被实例化为“django.contrib.admin.site”(然后,例如,您的ModelAdmin将根据该站点注册)。因此,您可以为自己的MyAdminSite子类化AdminSite,并在此处重新定义get_URL():

请确保现在使用URL.py中的my_admin_站点:

关于get_url()的实际内容,请参阅 (当然是调用MyAdminSite的super()。还要注意这里提到的方便的“admin_view”包装器


注意:理论上,你也可以定义get_URL(),然后monkeypatch作为默认的管理站点,这样它就可以使用你的get_URL(),但我不知道这是否真的有效——你可能需要在monkeypatch“首次”导入后立即使用它……

这是一个可能的解决方案。但是,它没有将URL注册为管理员URL(就像模型URL那样)。这是我网站的另一个URL,我在Django自己的URL之前定义并提供它。我想有一种方法,在这之后,我也可以反向映射的网址使用管理员。我很抱歉的错误使用的话。我真的想要这个。但是,你能简单介绍一下这需要采取哪些步骤吗?或者是这样做的一个例子?
from django.contrib.admin import AdminSite

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


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