【问题标题】:Error while integration a html template and url in django在 django 中集成 html 模板和 url 时出错
【发布时间】:2016-08-03 08:43:43
【问题描述】:

我使用的是Django 1.10 版。

下面是我的urls.py(前端),

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

urlpatterns = [
   url(r'^webApp/', include('webApp.urls')),
   url(r'^admin/', admin.site.urls),
   url(r'^home/$', 'frontend.views.home', name='home'),
]

下面是我的urls.py(webApp),

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),

]

下面是我的views.py

def home(request):
    return render_to_response('home.html')

这里,frontend 是我的项目名称,webApp 是我的应用名称。我在frontendtemplates 文件夹中有一个home.html

当我跑步时,

python manage.py runserver 0.0.0.0:8000

我收到以下错误,

File "/root/frontend/frontend/urls.py", line 22, in <module>
url(r'^home/$', 'frontend.views.home', name='home'),
File "/usr/local/lib/python2.7/dist-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 内有 webApp 包吗?
  • 是的,我愿意...我尝试评论和运行...给出了同样的错误...
  • 在根urls.py 中导入webApp
  • 您可以在帖子中显示webApp.urls 吗?
  • 顺便说一句,不要使用render_to_response,它已经过时了。将导入更改为from django.shortcuts import render,并将视图更改为return render(request, 'home.html')

标签: django django-views django-urls


【解决方案1】:

urlpatterns 列表中,您没有正确使用函数url(您将字符串作为其第二个参数传递,但在本例中是[..] must be a callable [..])。

所以...只需将'frontend.views.home' 更改为frontend.views.home(即删除单引号)就可以了。

【讨论】:

  • 您必须添加一个导入,例如import frontend.views 同时。
  • @FilippoLauria 你错了。如果没有导入,您将收到类似NameError: name 'frontend' is not defined 的错误
猜你喜欢
  • 2022-07-31
  • 2021-12-23
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
相关资源
最近更新 更多