TypeError: view must be a callable

ryuginka 2017-07-28 10:14:21
建了工程demo
建了APP,firstdemo
views:
def hello(request):
return HttpResponse('<h1>Hello Django!!!!</h1>')

url:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$','demo.firstdemo.views.hello'),
]

我的django版本是1.1.13?运行出错,TypeError: view must be a callable or a list/tuple in the case of include().

说是新版本不支持url的写法了。可是我怎么改都出错。新手没办法,求大神指导!
...全文
262 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39616023 2017-08-14
  • 打赏
  • 举报
回复
同学 你的问题最后怎么处理的 ,我也是遇到了类似的问题 求指教
qq_39616023 2017-08-14
  • 打赏
  • 举报
回复
在 urls.py 中导入 from firstdemo import views 即可
ryuginka 2017-07-31
  • 打赏
  • 举报
回复
谢谢大虾,我试试。
ryuginka 2017-07-28
  • 打赏
  • 举报
回复
from .views import hello 这句话编译失败了。
混沌鳄鱼 2017-07-28
  • 打赏
  • 举报
回复
你修改一下 firstdemo目录下的 urls.py 用下面的方式

from .views import hello

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

混沌鳄鱼 2017-07-28
  • 打赏
  • 举报
回复
第二个方法 先修改 Demo/Demo/urls.py

from django.conf.urls import url, include
from django.contrib import admin
 
urlpatterns = [
    url(r'^', include('firstdemo.urls')),
    url(r'^admin/', admin.site.urls),
]

用include()的时候正则表达式 要少加一个 “$” 不然会有警告,但不影响功能。 这样就可以了。
混沌鳄鱼 2017-07-28
  • 打赏
  • 举报
回复
按你的说法应该你的项目和应用的目录结构是这样的 Demo--Demo |_firstdemo 你首先确保 Demoe/Demo/settints.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'firstdemo',
]
你要想直接把firstdemo的view用在URL根目录 / 的话 第一个方法: 修改 Deme/Demo/urls.py

from django.conf.urls import url
from django.contrib import admin
from firstdemo.views import hello

urlpatterns = [
    url(r'^$', hello, name='hello'),
    url(r'^admin/', admin.site.urls),
]
这样就可以了。 第二个方法 先修改 Demo/Demo/urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^$', include('firstdemo.urls')),
    url(r'^admin/', admin.site.urls),
]
再(新建)修改 Demo/firstdemo/urls.py

from django.conf.urls import *
from firstdemo.views import hello

urlpatterns = [
    url(r'^$', hello, name='hello'),
    ]

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧