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>