Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Регистрация пользователя с вводом пароля 1 раз [RSS Feed]

#1 Авг. 14, 2015 17:29:49

dezinfo
Зарегистрирован: 2015-05-23
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

Регистрация пользователя с вводом пароля 1 раз

Есть задача сделать форму регистрации, но при этом пользователь должен вводить пароль 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('Такой адрес электронной почты уже зарегестрирован.')

views.py
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)

template
<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)

Офлайн

#2 Авг. 17, 2015 15:34:06

i.slepov
Зарегистрирован: 2015-05-28
Сообщения: 53
Репутация: +  5  -
Профиль   Отправить e-mail  

Регистрация пользователя с вводом пароля 1 раз

dezinfo
В стандартной модели требует подтверждение пароля.

Можно переопределить, можно свою форму создать, можно вовсе форму не использовать, как-бы 2015 год, ajax уже даже не сегодняшний день, а вчерашний.

Офлайн

  • Начало
  • » Django
  • » Регистрация пользователя с вводом пароля 1 раз[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version