Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Typeerror:视图必须可调用_Python_Django_Typeerror - Fatal编程技术网

Python Typeerror:视图必须可调用

Python Typeerror:视图必须可调用,python,django,typeerror,Python,Django,Typeerror,当我运行服务器时,会收到一条类型错误消息,告诉我: 我的视图必须是可调用的或列表/元组 从我收集的数据来看,django版本有所不同,为了清晰起见,我使用的是django的最新版本。。。总之,这是我的项目的my views.py和url.py: url.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^login/$', 'django.contrib.auth.views.l

当我运行服务器时,会收到一条类型错误消息,告诉我:

我的视图必须是可调用的或列表/元组

从我收集的数据来看,django版本有所不同,为了清晰起见,我使用的是django的最新版本。。。总之,这是我的项目的my views.py和url.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模式更改为以下内容:

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'),

]

从版本来看,视图是函数而不是字符串。

提供有关错误的详细信息。@gonczor以下是实际错误。…raise TypeError:视图必须可调用,如果是include(),则必须是列表/元组是。在URL模式中,视图必须是对实际视图函数的引用,而不是字符串。您有字符串。@丹尼尔,请您用一个例子解释一下,我迷路了。。谢谢您应该阅读教程,了解您正在使用的Django的正确版本。