视图可调用仍然获得错误视图必须是Callable-Django

时间:2017-11-12 11:43:14

标签: django python-3.x django-views django-urls

您好我正在编写我的第一个Django程序。我收到了这个错误:

            url(r'^hello/',view.Users().getUsers(), name='hello')
File"C:\Users\jayant.brahmchari\AppData\Local\Programs\Python\Python36\lib\si
   te-packages\django\conf\urls\__init__.py", line 85, in url
   raise TypeError('view must be a callable or a list/tuple in the case of 
   include().')
   TypeError: view must be a callable or a list/tuple in the case of include().

这是我的urls.py:

      from django.conf.urls import url
      from django.contrib import admin
      from . import view

      urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^hello/',view.Users().getUsers(), name='hello')
      ]

这是view.py:

        from django.http import HttpResponse


        class Users:
           def getUsers(self):
               return HttpResponse("Hello Users")

根据论坛中的人url不接受字符串作为第二个参数,但在我的代码视图中已经可调用但仍然出现此错误。

提前致谢。

2 个答案:

答案 0 :(得分:1)

你想要做的事情不存在。

在您的网址中,您可以轻松完成

url(r'^hello/$',view.get_users, name='hello')

并在您的视图上添加没有类

的函数

def get_users(request): return HttpResponse("hello users")

我建议你在django网站上进行django教程(Codex page

我希望它有所帮助

BestHélio

答案 1 :(得分:0)

错误表明是正确的。您正在将方法调用的结果传递给url()函数。尝试将方法引用传递为view.Users().getUsers,而不是调用getUsers()函数