Ошибка «Неподдерживаемый тип хэша» с Python 2.6.5 и структурой django - PullRequest
1 голос
/ 15 ноября 2010

Моя регистрационная форма выдает ошибку ValueError во время form.save() в поле пароля моей пользовательской регистрационной формы.

Вот подробности исключения (скопировано с http://www.pastie.org/1299144):

Environment:

Request Method: POST
Request URL: http://192.168.2.206:8080/register/
Django Version: 1.1.1
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.admin',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.comments',
 'mysite.registration',
 'mysite.profiles',
 'mysite.epw',
 'mysite.remember_me',
 'mysite.avatar',
 'mysite.django_documents',
 'mysite.inlines',
 'mysite.blog',
 'mysite.forum',
 'tagging']
Installed Middleware:
('django.middleware.cache.UpdateCacheMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.cache.FetchFromCacheMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'mysite.remember_me.views.AutoLogout')


Traceback:
File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response
  92.                 response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/pymodules/python2.6/django/utils/decorators.py" in _wrapped_view
  48.                 response = view_func(request, *args, **kwargs)
File "/home/karthik/Desktop/EPW_LOCAL/mysite/../mysite/epw/views.py" in register
  1538.             new_user = form.save(request)
File "/home/karthik/Desktop/EPW_LOCAL/mysite/../mysite/epw/form.py" in save
  169.                                                                     profile_callback=profile_callback)
File "/home/karthik/Desktop/EPW_LOCAL/mysite/../mysite/registration/models.py" in create_inactive_user
  110.         registration_profile = self.create_profile(new_user)
File "/home/karthik/Desktop/EPW_LOCAL/mysite/../mysite/registration/models.py" in create_profile
  145.         salt = hashlib.new(str(random.random())).hexdigest()[:5]
File "/usr/lib/python2.6/hashlib.py" in __hash_new
  101.         return __get_builtin_constructor(name)(string)
File "/usr/lib/python2.6/hashlib.py" in __get_builtin_constructor
  80.     raise ValueError, "unsupported hash type"

Exception Type: ValueError at /register/
Exception Value: unsupported hash type

.любой разрешит это. спасибо

Ответы [ 3 ]

4 голосов
/ 15 ноября 2010

Похоже, вы пытаетесь реализовать свою собственную систему регистрации с ним.Что не так с существующим?Я думаю, что вы должны прочитать больше об инфраструктуре Django в целом и пройти учебник.

Глядя на эту трассировку, проблема в строке hashlib.new(str(random.random())).hexdigest()[:5].(Познакомьтесь с просмотром трассировок и выясните, в чем проблема, вы обнаружите, что вам нужно часто, когда вы делаете ошибку.)

help(hashlib.new) показывает это:

__hash_new(name, string='')
    new(name, string='') - Return a new hashing object using the named algorithm;
    optionally initialized with a string.

«Именованный алгоритм» должен быть md5, sha1, sha256 и т. Д. (См. Список help(hashlib), а также порядок использования, например, hashlib.md5() вместо hashlib.new('md5').)

1 голос
/ 15 ноября 2010

haslib.new() ожидает имя алгоритма хеширования (например, "md5", "sha1" и т. Д.) В качестве первого параметра. Вы передаете случайную строку.

0 голосов
/ 16 ноября 2010

когда пароль сохраняется в то время вместо hashlib я использую sha криптографический алог, который отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...