django-allauth DefaultAccountAdapter clean_password() 得到了一个意想不到的关键字参数'user'



>我已经使用 django-allauth 和 django 1.10 编写了自己的自定义帐户适配器,以便我可以为要验证的密码指定正则表达式模式。

这是我的代码片段:

class MyAccountAdapter(DefaultAccountAdapter):
def clean_password(self, password):
if re.match(settings.ACCOUNT_PASSWORD_REGEX, password):
return password
else:
raise ValidationError("Password must be at least 8 characters long, contain one digit and one captalised alphabet")  

我已指定在我的settings.py中使用此类:

ACCOUNT_ADAPTER = 'app.adapters.MyAccountAdapter'

当我尝试注册(即提交填写的表格(时,出现以下错误:

类型错误在/帐户/注册/

clean_password(( 得到一个意外的关键字参数"user">

追踪:

File "/path/to/site-packages/django/core/handlers/exception.py" in inner
42.             response = get_response(request)
File "/path/to/site-packages/django/core/handlers/base.py" in _get_response
187.                 response = self.process_exception_by_middleware(e, request)
File "/path/to/site-packages/django/core/handlers/base.py" in _get_response
185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/path/to/site-packages/django/views/generic/base.py" in view
68.             return self.dispatch(request, *args, **kwargs)
File "/path/to/site-packages/django/utils/decorators.py" in _wrapper
67.             return bound_func(*args, **kwargs)
File "/path/to/site-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
76.             return view(request, *args, **kwargs)
File "/path/to/site-packages/django/utils/decorators.py" in bound_func
63.                 return func.__get__(self, type(self))(*args2, **kwargs2)
File "/path/to/site-packages/allauth/account/views.py" in dispatch
205.         return super(SignupView, self).dispatch(request, *args, **kwargs)
File "/path/to/site-packages/allauth/account/views.py" in dispatch
74.                                             **kwargs)
File "/path/to/site-packages/allauth/account/views.py" in dispatch
183.                                                           **kwargs)
File "/path/to/site-packages/django/views/generic/base.py" in dispatch
88.         return handler(request, *args, **kwargs)
File "/path/to/site-packages/allauth/account/views.py" in post
96.         if form.is_valid():
File "/path/to/site-packages/django/forms/forms.py" in is_valid
169.         return self.is_bound and not self.errors
File "/path/to/site-packages/django/forms/forms.py" in errors
161.             self.full_clean()
File "/path/to/site-packages/django/forms/forms.py" in full_clean
371.         self._clean_form()
File "/path/to/site-packages/django/forms/forms.py" in _clean_form
398.             cleaned_data = self.clean()
File "/path/to/site-packages/allauth/account/forms.py" in clean
363.                     user=dummy_user)
Exception Type: TypeError at /accounts/signup/
Exception Value: clean_password() got an unexpected keyword argument 'user'

这个神秘错误的含义是什么,我该如何解决它?

看看clean_passwordDefaultAccountAdapter实现:

def clean_password(self, password, user=None):
"""
Validates a password. You can hook into this if you want to
restric the allowed password choices.
"""

您缺少user关键字参数。

最新更新