Форум сайта python.su
Есть задача сделать форму регистрации, но при этом пользователь должен вводить пароль 1 раз. В стандартной модели требует подтверждение пароля. Кроме этого ломаю голову как сделать обработку ошибок и вывод их в форму (например регистрация пользователя на уже зарегистрированный адрес почты и т.д.)
forms.py
class RegistrationForm(UserCreationForm): def __init__(self, *args, **kwargs): super(RegistrationForm, self).__init__(*args, **kwargs) for name, field in self.fields.items(): field.widget.attrs.update({'class':'form-control input-lg'}) class Meta: model = User fields = ( 'username', 'email', 'password1', ) #clean email field def clean_email(self): email = self.cleaned_data["email"] try: User.objects.get(email=email) except User.DoesNotExist: return email raise forms.ValidationError('Такой адрес электронной почты уже зарегестрирован.')
def register_user(request): if request.method =='POST': form = RegistrationForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/accounts/user_profile/') args = {} args.update(csrf(request)) args['form'] = RegistrationForm() return render_to_response('register.html', args)
<form action="/accounts/register/" class="formMain" method="post" novalidate="novalidate"> {% csrf_token %} <div class="form-group"> <label class="control-label" for="email">Адрес электронной почты:</label> {{ form.email }} </div> <div class="form-group"> <label class="control-label" for="username">Имя пользователя:</label> {{ form.username }} </div> <div class="form-group"> <label class="control-label" for="password1">Пароль:</label> {{ form.password1 }} </div>
Отредактировано dezinfo (Авг. 14, 2015 17:52:02)
Офлайн
dezinfo
В стандартной модели требует подтверждение пароля.
Офлайн