您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django URLs TypeError:对于include(),视图必须是可调用的或列表/元组

Django URLs TypeError:对于include(),视图必须是可调用的或列表/元组

Django 1.10不再允许你'myapp.views.home'在URL模式中将视图指定为字符串(例如)。

解决方案是更新你urls.py的视图以包含可调用的视图。这意味着你必须在中导入视图urls.py。如果你的网址格式没有名称,那么现在是添加名称的好时机,因为使用虚线python路径进行反向操作不再有效。

from django.conf.urls import include, url

from django.contrib.auth.views import login
from myapp.views import home, contact

urlpatterns = [
    url(r'^$', home, name='home'),
    url(r'^contact/$', contact, name='contact'),
    url(r'^login/$', login, name='login'),
]

如果有很多视图,则不方便分别导入它们。一种替代方法是从你的应用程序中导入视图模块。

from django.conf.urls import include, url

from django.contrib.auth import views as auth_views
from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
    url(r'^contact/$', myapp_views.contact, name='contact'),
    url(r'^login/$', auth_views.login, name='login'),
]

请注意,我们已经使用as myapp_viewsas auth_views,这允许我们views.py从多个应用程序导入,而不会发生冲突。

Go 2022/1/1 18:23:11 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶