from django import forms from django.contrib.auth.forms import BaseUserCreationForm, SetPasswordMixin from django.contrib.auth.models import User from django.forms import EmailField from django.utils.text import gettext_lazy as _ from web.mixins import StylingMixin class RegisterForm(StylingMixin, BaseUserCreationForm, SetPasswordMixin): password1, password2 = SetPasswordMixin.create_password_fields() styled_fields = ['email', 'first_name', 'last_name', 'password1', 'password2'] placeholder_for_field = { 'email': _('pablo@shoppy.com'), 'first_name': _('Pablo'), 'last_name': _('Moreno'), 'password1': '********', 'password2': '********', } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field_name in self.fields.keys(): self.fields[field_name].required = True self.fields[field_name].widget.attrs.update( { 'class': 'input w-full' } ) class Meta: model = User fields = ('email', 'first_name', 'last_name') field_classes = {'email': EmailField, 'first_name': forms.CharField, 'last_name': forms.CharField}