Django ModelAdmin.get_url()未注册自定义URL

Django ModelAdmin.get_url()未注册自定义URL,django,django-admin,Django,Django Admin,我试图在Django管理站点中为我的模型创建自定义视图。我为名为Document的模型创建了ModelAdmin,如下所示: from django.http import HttpResponse from django.urls import path from django.contrib import admin from my_app.models import Document @admin.register(Document) class DocumentAdmin(admin

我试图在Django管理站点中为我的模型创建自定义视图。我为名为
Document
的模型创建了
ModelAdmin
,如下所示:

from django.http import HttpResponse
from django.urls import path
from django.contrib import admin
from my_app.models import Document


@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
    def get_urls(self):
        urls = super().get_urls()
        custom_urls = [
            path('my-view/', self.admin_site.admin_view(self.my_view))
        ]

        return urls + custom_urls

    def my_view(self, request):
        return HttpResponse('test')
根据(v2.1),我应该能够使用
/admin/my_app/document/my view
访问
my_view
,但当我尝试访问此URL时,django会将我重定向到管理员主页,并显示以下警告:

Document with ID "my-view" doesn't exist. Perhaps it was deleted?

看来django看不到我的自定义url。我错过了什么?我怎样才能让它工作呢?

这只是一个URL排序的问题;一般的管理员变更视图首先被处理,并将您对“我的视图”的请求捕获为slug。您可以通过将URL放在第一位来改变这一点,这是您链接到的示例中实际执行的操作:

return custom_urls + urls