字典更新序列元素#0的长度为1;加载页面

时间:2018-05-28 14:09:08

标签: python django

我看到了多个相同的主题,但没有解决我的问题。 我刚刚创建了一个django项目,构建了一个名为News的应用程序。 当我尝试加载页面时出现此错误:

  

字典更新序列元素#0的长度为1; 2是必需的

这是第一个urls

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

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'',include('News.urls'))
]

以下是News网址:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'', views.LoadHome.as_view(), 'home_page')
]

最后我的观点是:

class LoadHome(generic.TemplateView):
    template_name = 'index.html'
  

环境:

     

请求方法:GET请求网址:http://127.0.0.1:8000/

     

Django版本:2.0.5 Python版本:3.6.5已安装的应用程序:   [' django.contrib.admin',' django.contrib.auth',   ' django.contrib.contenttypes',' django.contrib.sessions',   ' django.contrib.messages',' django.contrib.staticfiles',   ' MyUser.apps.MyuserConfig',' News.apps.NewsConfig']已安装   中间件:[' django.middleware.security.SecurityMiddleware',   ' django.contrib.sessions.middleware.SessionMiddleware&#39 ;,   ' django.middleware.common.CommonMiddleware&#39 ;,   ' django.middleware.csrf.CsrfViewMiddleware&#39 ;,   ' django.contrib.auth.middleware.AuthenticationMiddleware&#39 ;,   ' django.contrib.messages.middleware.MessageMiddleware&#39 ;,   ' django.middleware.clickjacking.XFrameOptionsMiddleware']

     

回溯:

     

文件   " A:\的Python \ techProject \ VENV \ lib中\站点包\ django的\芯\处理程序\ exception.py"   在内心     35. response = get_response(request)

     

文件   " A:\的Python \ techProject \ VENV \ lib中\站点包\ django的\芯\处理程序\ base.py"   在_get_response中     113. resolver_match = resolver.resolve(request.path_info)

     

文件   " A:\的Python \ techProject \ VENV \ lib中\站点包\ django的\网址\ resolvers.py"   在决心     496. sub_match = pattern.resolve(new_path)

     

文件   " A:\的Python \ techProject \ VENV \ lib中\站点包\ django的\网址\ resolvers.py"   在决心     496. sub_match = pattern.resolve(new_path)

     

文件   " A:\的Python \ techProject \ VENV \ lib中\站点包\ django的\网址\ resolvers.py"   在决心     345. kwargs.update(self.default_args)

     

异常类型:ValueError at / Exception值:字典更新   序列元素#0的长度为1; 2是必需的

问题是什么?

我认为原因是我在settings.py中的INSTALLED_APPS,但我找不到任何问题。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MyUser.apps.MyuserConfig',
    'News.apps.NewsConfig'
]

2 个答案:

答案 0 :(得分:1)

urlpatterns = [
    url(r'', views.LoadHome.as_view, 'home_page')
]

你应该调用as_view方法:

urlpatterns = [
    url(r'', views.LoadHome.as_view(), 'home_page')
                                #  ^^
]

请参阅Django' class-based-views docs

答案 1 :(得分:0)

在你的urls.py中你得到了错误:

您的urls.py:

urlpatterns=[
url(r'', views.LoadHome.as_view(), 'home_page')
]

正确的是:

urlpatterns=[
url(r'', views.LoadHome.as_view(), name='home_page')
]