我在Django 1.4上收到一条错误消息:
字典更新序列元素#0的长度为1;2是必需的
当我尝试使用如下模板标记时发生了这种情况:{%for v in values%}:
字典更新序列元素#0的长度为1;2是必需的
请求方法:获取
请求URL:。。。
Django版本:1.4.5
异常类型:ValueError
异常值:
字典更新序列元素#0的长度为1;2是必需的
异常位置:/usr/local/lib/python2.7/dist-packages/djorm\u hstore/fields.py in\uuuu init\uuuu,第21行
Python可执行文件:/usr/bin/uwsgi core
Python版本:2.7.3
Python路径:
['/var/www/',
'.',
'',
“/usr/lib/python2.7”,
“/usr/lib/python2.7/plat-linux2”,
“/usr/lib/python2.7/lib-tk”,
“/usr/lib/python2.7/lib old”,
“/usr/lib/python2.7/lib dynload”,
“/usr/local/lib/python2.7/dist包”,
“/usr/lib/python2.7/dist包”,
“/usr/lib/python2.7/dist-packages/PIL”,
'/usr/lib/pymodules/python2.7']
服务器时间:sam,2013年7月13日16:15:45+0200
模板呈现期间出错
在template/var/www/templates/app/index.html中,第172行出现错误
字典更新序列元素#0的长度为1;2是必需的
172{products%}
回溯切换到复制和粘贴视图
/get_响应中的usr/lib/python2.7/dist-packages/django/core/handlers/base.py
响应=回调(请求,*回调参数,**回调参数)
...
▶ 局部变量
/视图中的usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py
返回视图功能(请求,*args,**kwargs)
...
▶ 局部变量
/内部文件中的usr/lib/python2.7/dist-packages/django/views/decorators/http.py
返回函数(请求、*args、**kwargs)
...
▶ 局部变量
/app/views.py在索引中
上下文\实例=请求上下文(请求))
...
▶ 局部变量
/render\u to\u响应中的usr/lib/python2.7/dist-packages/django/shortcuts/\uuuuu-init\uuuuuuuuu.py
返回HttpResponse(loader.render_to_string(*args,**kwargs),**HttpResponse_kwargs)
...
▶ 局部变量
/render_to_字符串中的usr/lib/python2.7/dist-packages/django/template/loader.py
返回t.render(上下文\实例)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
返回self.\u呈现(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
返回self.nodelist.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
bit=self.render_节点(节点,上下文)
...
▶ 局部变量
/render_节点中的usr/lib/python2.7/dist-packages/django/template/debug.py
返回node.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/loader_tags.py
返回编译的\u父对象。\u呈现(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
返回self.nodelist.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
bit=self.render_节点(节点,上下文)
...
▶ 局部变量
/render_节点中的usr/lib/python2.7/dist-packages/django/template/debug.py
返回node.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/loader_tags.py
结果=block.nodelist.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/base.py
bit=self.render_节点(节点,上下文)
...
▶ 局部变量
/render_节点中的usr/lib/python2.7/dist-packages/django/template/debug.py
返回node.render(上下文)
...
▶ 局部变量
/呈现中的usr/lib/python2.7/dist-packages/django/template/defaulttags.py
len_值=len(值)
...
▶ 局部变量
/usr/lib/python2.7/dist-packages/django/core/paginator.py在__
返回len(self.object\u列表)
...
▶ 局部变量
/usr/lib/python2.7/dist-packages/django/db/models/query.py在__
self.\u result\u cache=list(self.iterator())
...
▶ 局部变量
/迭代器中的usr/lib/python2.7/dist-packages/django/db/models/query.py
obj=模型(*行[索引开始:聚合开始])
...
▶ 局部变量
/init中的usr/lib/python2.7/dist-packages/django/db/models/base.py__
setattr(self,field.attname,val)
...
▶ 局部变量
/usr/local/lib/python2.7/dist-packages/djorm\u hstore/fields.py in\uu\u set__
value=self.field.\u属性\u类(value,self.field,obj)
...
▶ 局部变量
/usr/local/lib/python2.7/dist-packages/djorm\u hstore/fields.py in\uuu init__
super(HStoreDictionary,self)。\uuuu init\uuuu(值,**参数)
...
▶ 局部变量
当我尝试访问hstore queryset时也会发生这种情况:
回溯(最近一次呼叫最后一次):
文件";manage.py”一词;,第14行,in<;模块>;
执行\u管理器(设置)
文件"/usr/local/lib/python2.7/dist-packages/django/core/management/uu-init_uu.py";,执行管理器中的第459行
utility.execute()
文件"/usr/local/lib/python2.7/dist-packages/django/core/management/uu-init_uu.py";,执行中的第382行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件"/usr/local/lib/python2.7/dist-packages/django/core/management/base.py“;,第196行,来自argv的运行中
self.execute(*args,**选项._dict__;
文件"/usr/local/lib/python2.7/dist-packages/django/core/management/base.py“;,第232行,执行中
输出=self.handle(*args,**选项)
文件"/home/name/workspace/project/app/data/commands/my_command.py“;,第60行,在手柄中
item_id=tmp[0]。id,
文件"/usr/local/lib/python2.7/dist-packages/django/db/models/query.py“;,第207行,在_getitem中__
退货清单(qs)[0]
文件"/usr/local/lib/python2.7/dist-packages/django/db/models/query.py“;,第87行,in_uuulen__
self.\u result\u cache.extend(self.\u iter)
文件"/usr/local/lib/python2.7/dist-packages/django/db/models/query.py“;,第301行,在迭代器中
obj=模型(*行[索引开始:聚合开始])
文件"/usr/local/lib/python2.7/dist-packages/django/db/models/base.py“;,第300行,in_uuuinit__
setattr(self,field.attname,val)
文件"/usr/local/lib/python2.7/dist-packages/djormhstore/fields.py“;,第38行,在集合中__
value=self.field.\u属性\u类(value,self.field,obj)
文件"/usr/local/lib/python2.7/dist-packages/djormhstore/fields.py“;,第21行,in_uuuinit__
super(HStoreDictionary,self)。\uuuu init\uuuu(值,**参数)
ValueError:字典更新序列元素#0的长度为1;2是必需的
代码是:
tmp=Item.objects.where(HE(";kv";)。包含({'key':value}))
如果tmp.count()>;0:
item_id=tmp[0]。id,
我只是想访问这个值。我不明白这句话;“更新顺序”;消息当我使用光标而不是hstore queryset时,该函数起作用。模板渲染时也会出现错误。我刚刚重新启动了uwsgi,一切正常,但稍后会返回错误
只是遇到了这个问题。我不知道是不是同样的东西击中了你的代码,但对我来说根本原因是因为我忘了在Django 2.0+函数调用中的url(或path)的最后一个参数上加name=
例如,以下函数抛出问题的错误:
url(r'^foo/(?P<;bar>;[A-Za-z]+)/$,views.FooBar.as_view(),'foo')
路径('foo/{slug:bar}/',views.FooBar,'foo')
但这些方法确实有效:
url(r'^foo/(?P<;bar>;[A-Za-z]+)/$,views.FooBar.as_view(),name='foo')
路径('foo/{slug:bar}/',views.FooBar,name='foo')
回溯没有帮助的原因是,在内部,Django希望将给定的位置参数解析为关键字参数kwargs,并且由于字符串是可匹配的,因此非典型代码路径开始展开。始终在URL上使用name=