У меня есть проект django с тремя приложениями: веб-сайт, блог и обычай. Приложение customauth реализует пользовательский пользователь и AdminSite. В приложении блога есть модель Post. Я пытаюсь зарегистрировать модель Post на пользовательском AdminSite и получаю следующую ошибку:
NoReverseMatch at /my_admin/
Reverse for 'app_list' with keyword arguments '{'app_label': 'blog'}' not found. 1 pattern(s) tried: ['admin\\/(?P<app_label>customauth)/$']
Request Method: GET
Request URL: http://127.0.0.1:8000/my_admin/
Django Version: 2.0.4
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'app_list' with keyword arguments '{'app_label': 'blog'}' not found. 1 pattern(s) tried: ['admin\\/(?P<app_label>customauth)/$']
Вот обычный / admin.py:
class MyAdminSite(admin.AdminSite):
site_title = "Custom Administration Area"
site_header = 'Custom Administration Area'
def get_urls(self):
urls = super(MyAdminSite, self).get_urls()
my_urls = [
url(r'^my_view/$', self.my_view, name='my_view'),
]
return my_urls + urls
def my_view(self,request):
value = "You're looking at the new admin view."
context = dict(
# Include common variables for rendering the admin template.
self.each_context(request),
# Anything else you want in the context...
key=value,
)
return TemplateResponse(request, "website/admin.html", context)
admin_site = MyAdminSite(name='myadmin')
# Now register the new UserAdmin...
admin_site.register(MyUser, UserAdmin)
А вот и блог / admin.py:
from django.contrib import admin
from customauth.admin import admin_site
# Register your models here.
from .models import Post
class PostAdmin(admin.ModelAdmin):
pass
admin_site.register(Post,PostAdmin)
Вот сайт / urls.py:
from django.contrib import admin
from django.urls import include, path
from customauth.admin import admin_site
from . import views
urlpatterns = [
path('admin/', admin.site.urls, name='admin'),
path('my_admin/', include('customauth.urls'), name='custom_admin'),
path('', views.index, name='index'),
path('latest_news/', include('blog.urls'), name='latest_news')
]
А вот и привычный / urls.py:
from . import views
from .admin import admin_site
urlpatterns = [
path('', admin_site.my_view, name='custom_admin'),
]
Что я делаю не так?