当我编写http:// localhost:8001 / admin /时,网站未显示管理面板

时间:2019-10-20 19:22:53

标签: python django

网站未显示管理面板。我该怎么办?

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)

我的网址如下:

    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 :(得分:0)

我敢打赌,您的PageViews的网址控制器范围太广,Django会尝试使用“ admin”标记执行PageViews,而不是打开管理站点。

请注意,这只是一个疯狂的猜测-您的问题很难回答。在发布另一本书之前,请先阅读以下内容:How do I ask a good question

答案 1 :(得分:0)

Django按顺序检查URL模式。由于“ admin”作为子句有效,因此该URL与PageViews模式匹配,并且将调用该视图。

解决方案是将更具体的URL(在本例中为admin)放在列表​​的顶部。

答案 2 :(得分:0)

您只需要更改URL的顺序即可。 Django从上到下尝试它们。发生的事情是Django正在将“ admin”处理为一个进程,并尝试使用admin查找具有该进程的url。

将您的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')),