gpt4 book ai didi

python - 错误 : "dictionary update sequence element #0 has length 1; 2 is required" on Django 1. 4

转载 作者:IT老高 更新时间:2023-10-28 12:33:17 30 4
gpt4 key购买 nike

我在 Django 1.4 上有一条错误消息:

dictionary update sequence element #0 has length 1; 2 is required

当我尝试使用模板标签时发生这种情况:{% for v in values %}:

dictionary update sequence element #0 has length 1; 2 is required

Request Method: GET
Request URL: ...
Django Version: 1.4.5
Exception Type: ValueError
Exception Value:

dictionary update sequence element #0 has length 1; 2 is required

Exception Location: /usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__, line 21
Python Executable: /usr/bin/uwsgi-core
Python Version: 2.7.3
Python Path:

['/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-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/pymodules/python2.7']

Server time: sam, 13 Jul 2013 16:15:45 +0200
Error during template rendering

In template /var/www/templates/app/index.html, error at line 172
dictionary update sequence element #0 has length 1; 2 is required

172 {% for product in products %}

Traceback Switch to copy-and-paste view

/usr/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response

response = callback(request, *callback_args, **callback_kwargs)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py in _wrapped_view

return view_func(request, *args, **kwargs)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/views/decorators/http.py in inner

return func(request, *args, **kwargs)

...
▶ Local vars
./app/views.py in index

context_instance=RequestContext(request))

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/shortcuts/__init__.py in render_to_response

return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader.py in render_to_string

return t.render(context_instance)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

return self._render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in _render

return self.nodelist.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

bit = self.render_node(node, context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

return node.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader_tags.py in render

return compiled_parent._render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in _render

return self.nodelist.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

bit = self.render_node(node, context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

return node.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader_tags.py in render

result = block.nodelist.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

bit = self.render_node(node, context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

return node.render(context)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/defaulttags.py in render

len_values = len(values)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/core/paginator.py in __len__

return len(self.object_list)

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/query.py in __len__

self._result_cache = list(self.iterator())

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/query.py in iterator

obj = model(*row[index_start:aggregate_start])

...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/base.py in __init__

setattr(self, field.attname, val)

...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __set__

value = self.field._attribute_class(value, self.field, obj)

...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__

super(HStoreDictionary, self).__init__(value, **params)

...
▶ Local vars

当我尝试访问 hstore 查询集时也会发生这种情况:

Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 459, in execute_manager
utility.execute()

File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)

File "/home/name/workspace/project/app/data/commands/my_command.py", line 60, in handle
item_id = tmp[0].id,

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 207, in __getitem__
return list(qs)[0]

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 87, in __len__
self._result_cache.extend(self._iter)

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 301, in iterator
obj = model(*row[index_start:aggregate_start])

File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 300, in __init__
setattr(self, field.attname, val)

File "/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py", line 38, in __set__
value = self.field._attribute_class(value, self.field, obj)

File "/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py", line 21, in __init__
super(HStoreDictionary, self).__init__(value, **params)

ValueError: dictionary update sequence element #0 has length 1; 2 is required

代码是:

tmp = Item.objects.where(HE("kv").contains({'key':value}))

if tmp.count() > 0:

item_id = tmp[0].id,

我只是想访问该值。我不明白“更新序列”消息。当我使用游标而不是 hstore queryset 时,该函数起作用。该错误也出现在模板渲染上。我刚刚重新启动了 uwsgi 一切正常,但稍后又出现错误。

最佳答案

刚刚遇到这个问题。我不知道它是否与您的代码相同,但对我来说,根本原因是因为我忘记将 name= 放在 url 的最后一个参数上(或 Django 2.0+ 中的 path)函数调用。

例如,以下函数会从问题中抛出错误:

url(r'^foo/(?P<bar>[A-Za-z]+)/$', views.FooBar.as_view(), 'foo')
path('foo/{slug:bar}/', views.FooBar, 'foo')

但这些确实有效:

url(r'^foo/(?P<bar>[A-Za-z]+)/$', views.FooBar.as_view(), name='foo')
path('foo/{slug:bar}/', views.FooBar, name='foo')

traceback 无用的原因是因为在内部,Django 想要将给定的 positional 参数解析为 keyword 参数 kwargs,并且由于字符串是可迭代的,因此开始展开非典型代码路径。始终在您的网址上使用 name=!

关于python - 错误 : "dictionary update sequence element #0 has length 1; 2 is required" on Django 1. 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17610732/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com