2010-11-15 94 views
1

我的注册表在form.save()期间在我的自定义注册表单的密码字段中引发ValueError。“Unsupported hash type”error/Python 2.6.5 and django framework

以下是异常的详细信息(从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 

PLS可以在任何一个解决这个问题。 谢谢

+2

请问您可以重新格式化您的问题?使用101010按钮标记代码块,以全英文说话,不要使所有内容都大胆。 – 2010-11-15 09:35:34

回答

1

haslib.new()期望哈希算法名称(例如“md5”,“sha1”等)作为第一个参数。你正在传递一个随机字符串。

4

它看起来像你试图用它来实现你自己的注册框架。现有的有什么问题?我认为你应该通常阅读更多关于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')

0

当密码是在节省时间hashlib,而不是我用SH一个加密算法工作正常

相关问题