【发布时间】:2018-05-21 10:10:38
【问题描述】:
当我运行我的服务器时,我收到一条类型错误消息,告诉我:
我的视图必须是可调用的或列表/元组
从我收集到的 django 版本不同,为了清楚起见,我使用的是 django 最新版本...无论如何,这是我的项目的 views.py 和 urls.py:
url.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^login/$',
'django.contrib.auth.views.login',name='login'),
url(r'^logout/$',
'django.contrib.auth.views.logout',name='logout'),
url(r'^logout-then-login/$',
'django.contrib.auth.views.logout_then_login',name='logout_then_login'),
]
views.py
from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth import authenticate, login
from .forms import LoginForm
from django.contrib.auth.decorators import login_required
def user_login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
user = authenticate(username=cd['username'],password=cd['password'])
if user is not None:
if user.is_active:
login(request, user)
return HttpResponse('Authenticated successfully')
else:
return HttpResponse('Disabled account')
else:
return HttpResponse('Invalid login')
else:
form = LoginForm()
return render(request, 'account/login.html', {'form': form})
@login_required
def dashboard(request):
return render(request,
'account/dashboard.html',{'section': 'dashboard'})
【问题讨论】:
-
提供有关错误的更多详细信息。
-
-
是的。在 URL 模式中,视图必须是对实际视图函数的引用,而不是字符串。你有字符串。
-
@Daniel 请你举个例子解释一下,我迷路了..谢谢
-
您应该阅读教程以了解您正在使用的正确版本的 Django。