我正在使用最新版本的django,我想使用内置系统创建一个LogoutView。但是当我尝试运行服务器时,这会出错,并且无法使用LogoutView。
的数据
下面是urls.py代码。
from django.contrib import admin
from django.urls import path, include
from users import views as user_views
from django.contrib.auth import views as auth_views
urlpatterns = [
path('admin/', admin.site.urls),
path('food/',include('food.urls')),
path('register/',user_views.register,name='register'),
path('login/',auth_views.LoginView.as_view(template_name='users/login.html'),name='login'),
path('logout/',auth_views.LogoutView.as_view(template_name='users/logout.html'),name='logout'),
]
字符串
当我检查时,我发现错误是:
HTTP error code 405 stands for "Method Not Allowed." Django's LogoutView, the expected method for logout is typically POST but this is getting in terminal:
"GET /logout/ HTTP/1.1" 405 0
Method Not Allowed (GET): /logout/
Method Not Allowed: /logout/
型
2条答案
按热度按时间0kjbasz61#
当你开始写你的网站时,你使用
django-admin startproject projectname
命令创建了一个项目,这创建了一个名为projectname的目录,其中有一些文件,其中之一就是你的urls.py。另外,你应该使用
python manage.py startapp appname
命令创建一个应用程序,因为django项目是由应用程序组成的。这会创建一个包含模型,视图等的应用程序目录。每个应用程序都应该有自己的urls.py,所以你必须创建一个。从您所展示的内容来看,您将项目级别urls.py与应用程序urls.py混淆了。您的项目级别urls.py位于包含您的项目的目录中,应该如下所示:
字符串
我假设你的应用名称是users,因为你使用的是默认的Django的user auth。我猜你已经在
settings.py
的INSTALLED_APPS
列表中定义了它,在列表中添加了'users'。在users app目录中创建一个名为urls.py的文件,并输入以下内容:型
请确认您在urls.py中包含的路径没有错误。如果是这样,它现在应该可以工作了。请参阅docs。
taor4pac2#
升级到5.0.1版本后也是如此。不太清楚原因,我建议先降级到4.2.9版本。
字符串