Как создать вид/форму обновления профиля пользователя?

Я пытаюсь обновить профиль пользователя, но не могу этого сделать, что за ошибку я совершаю здесь.

#forms.py
class AddStudentUserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ["username", "first_name", "last_name"]

class AddStudentStaffForm(forms.ModelForm):
    class Meta:
        model = Staff
        fields = ["gender", "dob", "mob", "img"]

#views.py
def editProfile(request, user, id):
    if request.POST:
        staffform = AddStudentStaffForm(request.POST or None, request.FILES or None, instance=request.user.staff_profile)
        userform = AddStudentUserForm(data=request.POST, instance=request.user)

        if staffform.is_valid():
            staffform.save()

        if userform.is_valid():
            userform.save()
            return redirect(profile,user)
    return render(request, 'edit.html')

#models.py
class Staff(models.Model):
    Male = 'Male'
    Female = 'Female'
    Other = 'Other'
    GENDER_CHOICE = (
        (Male, 'Male'),
        (Female, 'Female'),
        (Other, 'Other')
    )
    id = models.AutoField(primary_key=True)
    admin = models.OneToOneField(User, related_name='staff_profile', on_delete=models.CASCADE)
    gender = models.CharField(max_length=10, choices=GENDER_CHOICE, default=Male)
    dob = models.DateField(auto_now_add=False, blank=True, null=True, default=None)
    mob = models.IntegerField(blank=True, null=True, default=None)
    img = models.ImageField(upload_to='staff/', blank="True", null="True")
    objects = models.Manager()

    @receiver(post_save, sender=User)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            Staff.objects.create(user=instance)

    @receiver(post_save, sender=User)
    def save_user_profile(sender, instance, **kwargs):
        instance.staff_profile.save()

    def __str__(self):
        return self.gender

Я начал создавать проект системы управления студентами. Но я столкнулся с некоторыми трудностями при его разработке. Я много пытался решить эту проблему, но так как я не могу ее решить.

Здесь, если я хочу обновить поля модели Staff, такие как gender, dob, mob, они успешно обновляются, но когда я пытаюсь обновить поля модели User, такие как username, first_name, last_name, они не обновляются. Я думаю, что условие if userform.is_valid(): не может быть выполнено, но я не могу понять, какую ошибку я здесь делаю.

Вы можете отладить, почему форма не действительна, попробуйте код ниже :

if userform.is_valid():
    userform.save()
    return redirect(profile,user)
else:
    print userform.errors #To see the form errors in the console. 
Вернуться на верх