2014-01-14 2 views
1

Я пытаюсь добавить пользовательский класс в форму изменения пароля django, перейдя в мою собственную форму. Но постоянно получаю ошибку:ТипError: password_change() получил неожиданный аргумент ключевого слова 'form'

TypeError: password_change() got an unexpected keyword argument 'form' 

Пользовательские формы, которые я использую для смены пароля: Примечание: Я пытался распространяющееся на SetPasswordForm, а так PasswordChangeForm подкласс этого, но без костей. userapp.forms:

from django.contrib.auth.forms import SetPasswordForm, PasswordChangeForm 

attrs_dict = {'class':'required form-control'} 

    class CustomChangePasswordForm(PasswordChangeForm): 
     old_password = forms.CharField(widget=forms.TextInput(attrs=attrs_dict)) 
     new_password1 = forms.CharField(widget=forms.TextInput(attrs=attrs_dict)) 
     new_password2 = forms.CharField(widget=forms.TextInput(attrs=attrs_dict)) 

добавили эту строку в urls.py:

url(r'^accounts/password/change/$', 'django.contrib.auth.views.password_change', {'form': CustomChangePasswordForm}), 
url(r'^accounts/register/$', register, { 'backend': 'registration.backends.default.DefaultBackend','form_class':UserRegistrationFormz}, name='registration_register'), 
url(r'^accounts/vendor-register/$', register, { 'backend': 'registration.backends.default.DefaultBackend','form_class':VendorRegistrationForm}, name='vendor_register'), 
url(r'^accounts/', include(regUrls)), 

ответ

1

Изменить

{'form': CustomChangePasswordForm} 

в

{'password_change_form': AdminPasswordChangeForm} 

Ссылка: Source code

+0

Отлично! Большое спасибо :) – shaytac

Смежные вопросы