注册模型时如何解决Django自定义管理站点NoReverseMatch?

2024-03-29 09:48:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为Django项目中的一个应用程序创建一个自定义管理站点。这个应用程序有几个型号,我想在管理员网站上注册。问题是,如果我在这个自定义管理站点中注册应用程序的所有型号,我会得到以下错误:

NoReverseMatch at /admin/auto-harvest/
Reverse for 'app_list' with keyword arguments '{'app_label': 'my_app'}' not found. 1 pattern(s) tried: ['admin/(?P<app_label>auth|django_mfa|axes)/$']

但是,如果我注册了除最后一个之外的所有模型,我不会得到错误,并且管理站点会成功加载,但其中一个模型没有注册。 我发现这种行为很奇怪,无法找出原因。下面是我的admin.pyurls.py

class MyAdminSite(AdminSite):
    site_header = "My Admin"
    site_title = "My Admin Site"


my_admin_site = MyAdminSite(name='auto_harvest')

注册模型:

@admin.register(MyModel1, site=my_admin_site)
class MyModel1Admin(VersionAdmin):
    ...

@admin.register(MyModel2, site=my_admin_site)
class MyModel2Admin(VersionAdmin):
    ...

在项目urls中,我有:

urlpatterns = [
    path('admin/my-site/', include(myapp.urls)),
]

在{}我有:

urlpatterns = [
    path('', my_admin_site.urls),
]

Tags: 项目模型app应用程序autoadmin站点my