Сайт не показывает панель администратора, когда я пишу http://localhost:8001/admin/ - PullRequest
0 голосов
/ 20 октября 2019

Сайт не показывает панель администратора. Что мне делать?

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8001/admin/
Raised by:  news.views.PageViews

С чем это может быть связано? Я не знаю, что делать.

class PageViews(ListView):
    template_name = 'page.html'
    paginate_by = 8
    context_object_name = 'posts'
    ordering = ['-datetime']
    model = Page
    paginate_orphans = 1

    def dispatch(self, request, *args, **kwargs):
        slug = kwargs.get('slug')

        try:
            self.category = Category.objects.get(slug=slug)
        except Category.DoesNotExist:
            raise Http404

        return super().dispatch(request, *args, **kwargs)

    def get_queryset(self):
        return Page.objects.filter(category=self.category)

Мои URL ниже:

    path("register/", views.register, name="register"),
    path("logout/", views.logout_request, name="logout"),
    path("login/", views.login_request, name="login"),
    path("profile/", views.account, name="account"),
    path('', HomeView.as_view(), name='home'),
    path('<slug:slug>/', views.PageViews.as_view(), name='page'),
    path('robots.txt', views.robots_view),
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
    path('summernote/', include('django_summernote.urls')),

Ответы [ 3 ]

0 голосов
/ 21 октября 2019

Django проверяет шаблоны URL по порядку. Поскольку «admin» будет действительным как слаг, URL совпадает с шаблоном PageViews, и это представление называется.

Решение состоит в том, чтобы поместить более конкретные URL, в данном случае admin, в верхнюю частьсписок.

0 голосов
/ 21 октября 2019

Вам просто нужно изменить порядок ваших URL. Джанго пробует их сверху донизу. Происходит то, что Django обрабатывает 'admin' как слаг и пытается найти URL с слагом с помощью admin.

Измените urls.py на что-то вроде этого:

path("register/", views.register, name="register"),
    path("logout/", views.logout_request, name="logout"),
    path("login/", views.login_request, name="login"),
    path("profile/", views.account, name="account"),
    path('admin/', admin.site.urls), #move your admin/ to here
    path('', HomeView.as_view(), name='home'),
    path('<slug:slug>/', views.PageViews.as_view(), name='page'), #where your admin url is going to get 404ed
    path('robots.txt', views.robots_view),
    path('accounts/', include('django.contrib.auth.urls')),
    path('summernote/', include('django_summernote.urls')),
0 голосов
/ 20 октября 2019

Могу поспорить, что ваш URL-контроллер для PageViews слишком широк и Django пытается запустить PageViews с помощью slag 'admin' вместо открытия сайта администратора.

Пожалуйста, обратите внимание, что это просто дикая догадка -на ваш вопрос очень сложно ответить. Прочтите это, прежде чем публиковать еще один: Как мне задать хороший вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...