类型错误:在 include() 的情况下,视图必须是可调用的或列表/元组

新手上路,请多包涵

我是 django 和 python 的新手。在 url 映射到视图期间,我收到以下错误:TypeError: view must be a callable or a list/tuple in case of include()。

网址。代码:-

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

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^posts/$', "posts.views.post_home"), #posts is module and post_home
]                                              # is a function in view.

views.py 代码:-

 from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#function based views

def post_home(request):
    response = "<h1>Success</h1>"
    return HttpResponse(response)

追溯

在此处输入图像描述

原文由 M Pabari 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

在 1.10 中,您不能再将导入路径传递给 url() ,您需要传递实际的视图函数:

 from posts.views import post_home

urlpatterns = [
    ...
    url(r'^posts/$', post_home),
]

原文由 knbk 发布,翻译遵循 CC BY-SA 3.0 许可协议

用这个替换你的管理员 url 模式

url(r'^admin/', include(admin.site.urls))

所以你的 urls.py 变成:

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

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^posts/$', "posts.views.post_home"), #posts is module and post_home
]

管理 url 可以通过 include 调用(1.9 之前)。

原文由 kapilsdv 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题