from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from .models import UserProfile class CustomUserCreationForm(UserCreationForm): user_type = forms.ChoiceField(choices=UserProfile.USER_TYPE_CHOICES) class Meta(UserCreationForm.Meta): model = User fields = UserCreationForm.Meta.fields + ('email',) def save(self, commit=True): user = super().save(commit=False) if commit: user.save() UserProfile.objects.create( user=user, user_type=self.cleaned_data['user_type'] ) return user