ValueError:太多值无法解压Django [英] ValueError: Too many values to unpack Django
问题描述
所以我刚刚部署了我的第一个Django应用。
So I just got my first django app deployed.
我做了 syncdb
并创建了我的超级用户帐户
I did a syncdb
and created my superuser account for the site.
现在,当我访问页面并按登录按钮时,出现此错误。我认为这与密码有关,但是我不确定。
Now when I access the page and press the login button I get this error. I think it has something to do with the password but I'm not sure.
ValueError at /accounts/login/
too many values to unpack
我使用的是通用登录视图
I'm using the generic login view
(r'^accounts/login/$', login, {'template_name': 'authentication/login.html'}),
以下是回溯
Environment:
Request Method: POST
Request URL: http://xx.xx.xx.xx:8888/accounts/login/?next=/some_page/
Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'bc_system_app',
'django.contrib.humanize']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/views.py" in login
35. if form.is_valid():
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in is_valid
121. return self.is_bound and not bool(self.errors)
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _get_errors
112. self.full_clean()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in full_clean
268. self._clean_form()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _clean_form
296. self.cleaned_data = self.clean()
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/forms.py" in clean
85. self.user_cache = authenticate(username=username, password=password)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/__init__.py" in authenticate
55. user = backend.authenticate(**credentials)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/backends.py" in authenticate
18. if user.check_password(password):
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/models.py" in check_password
275. return check_password(raw_password, self.password)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/models.py" in check_password
42. algo, salt, hsh = enc_password.split('$')
Exception Type: ValueError at /accounts/login/
Exception Value: too many values to unpack
推荐答案
是的,密码有问题。
错误在于密码已加密并存储在数据库中。从追溯中的语句 algo,salt,hsh = enc_password.split(’$’)
可以清楚地看到。加密的密码拆分返回三个以上的值。
The error is in the way the password has been encrypted and stored in the DB. It can be clearly seen from the statement algo, salt, hsh = enc_password.split('$')
in the traceback. The encrypted password splitting returns more than 3 values.
因此,请查看密码加密方案及其相关内容。
So, please have look at the password encryption schemes and related.
这篇关于ValueError:太多值无法解压Django的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!