我是编码和Django的新手。我正在学习使用旧版Django的教程。
在本教程中,cadmin / views.py中有以下代码
from django.contrib.auth import views as auth_views
def login(request, **kwargs):
if request.user.is_authenticated:
return redirect('/cadmin/')
else:
return auth_views.login(request, **kwargs)
我尝试用auth_views.login(request, **kwargs)
和auth_views.LoginView(request, **kwargs)
替换auth_views.LoginView.as_views(request, **kwargs)
,但是这两个都给我带来错误。
请任何人告诉我我应该放什么。
谢谢
编辑:其他信息
这是我的管理应用程序中的urls文件
from django.urls import path, include
from . import views
from django.contrib.auth import views as auth_views
urlpatterns = [
path('post/add/', views.post_add, name='post_add'),
path('post/update/<int:pk>/', views.post_update, name='post_update'),
path('accounts/login/', views.login, {'template_name':'cadmin/login.html'}, name='login'),
path('accounts/logout/', auth_views.LogoutView.as_view(template_name='cadmin/logout.html'), name='logout'),
path("", views.home, name='home'),
]
我已经登录return redirect('/cadmin/')
时工作正常。另外,从我的网址注销也可以。是
else:
return auth_views.login(request, **kwargs)
不起作用-它给我一个错误,说“模块'django.contrib.auth.views'没有属性'登录'”。
如果我将admin / views.py中的代码更改为
def login(request, **kwargs):
if request.user.is_authenticated:
return redirect('/cadmin/')
else:
return auth_views.LoginView.as_view(request, **kwargs)
或
def login(request, **kwargs):
if request.user.is_authenticated:
return redirect('/cadmin/')
else:
return auth_views.LoginView(request, **kwargs)
我在/ cadmin / accounts / login /处收到错误消息“ TypeError as_view()接受1个位置参数,但给出了2个位置。”