我看到了多个相同的主题,但没有解决我的问题。
我刚刚创建了一个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'
]
答案 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')
]