To use profile model with user form we need to initialize the form fields in the form. Then to get the values on edit we need to initialize __init__ function and passing the profile object from the view

 Ex: forms.py
 class SuperUserEditForm(forms.ModelForm):
    birthday = forms.DateTimeField(input_formats=['%Y-%m-%d %I:%M %p'], required=False)
    phone_number = forms.CharField(max_length=100, required=False, label="Home Phone")
    cell_number = forms.CharField(max_length=100, required=False)
    carrier = forms.ChoiceField(choices=CARRIERS, required=False)
   
    def __init__(self, profile=None, *args, **kwargs):
        super(SuperUserEditForm, self).__init__(*args, **kwargs)
        if(profile):
            self.fields['cell_number'].initial = profile.cell_number
            self.fields['carrier'].initial = profile.carrier
            self.fields['birthday'].initial = profile.birthday
            self.fields['phone_number'].initial = profile.phone_number

 Ex: views.py
     form = SuperUserEditForm(profile=profile, instance=user)

     on POST
     form = SuperUserEditForm(data=request.POST, instance=user)