Django: Как обновлять одно поле за раз на форме?

Я пытался найти решение в Интернете, но не нашел ни одного подходящего, я надеялся, что вы, ребята, сможете мне помочь, так как я нахожусь в этой ситуации уже два дня. Моя проблема в том, что каждый раз, когда я пытаюсь обновить одно из полей моего пользователя, выскакивает ошибка, говорящая, что необходимо обновить и другие поля. Я пробовал поместить blank=True в одно из полей модели User, чтобы требуемое значение стало False, но когда я нажимаю кнопку update на front end, те поля, которые я не изменил, становятся пустыми. Все, что я хочу, это позволить пользователю обновить одно поле, если он или она хочет, без необходимости обновлять другие поля... так же, как на сайте администратора, вы можете свободно обновить одно поле пользователя, и это не вызовет ошибку. Может кто-нибудь помочь мне с этим?

это мое мнение

class ProfileUpdateView(LoginRequiredMixin,UpdateView):
    model = User
    form_class = UserUpdateForm
    template_name = 'accounts/profile_update.html'

def get_object(self, *args, **kwargs):
    return User.objects.get(username=self.kwargs.get('username'))

def get_success_url(self):
    self.object = self.get_object()
    return reverse_lazy('accounts:profile_update', self.request.user.username)

это моя форма

class UserUpdateForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'email', 'phone_number', 'current_address', 'image']

Я пробовал это

Мое мнение

class ProfileUpdateView(LoginRequiredMixin,UpdateView):
    model = User
    form_class = UserUpdateForm
    template_name = 'accounts/profile_update.html'

def get_object(self, *args, **kwargs):
    return User.objects.get(username=self.kwargs.get('username'))

def get_success_url(self):
    self.object = self.get_object()
    return reverse_lazy('accounts:profile_update', self.request.user.username)

#I added this
def get_form_kwargs(self):
    form = super().get_form_kwargs()
    form['user'] = self.request.user
    return form

Моя форма

class UserUpdateForm(forms.ModelForm):
    #I added this
    def __init__(self, user, *args, **kwargs):
        self.user = user
        super(UserUpdateForm, self).__init__(*args, **kwargs)

        self.fields['first_name'].initial = user.first_name
        self.fields['last_name'].initial = user.last_name
        self.fields['email'].initial = user.email
        self.fields['phone_number'].initial = user.phone_number
        self.fields['current_address'].initial = user.current_address
        self.fields['image'].initial = user.image

    class Meta:
        model = User
        fields = ['first_name', 'last_name', 'email', 'phone_number', 'current_address', 'image']

Я также попробовал get_initial на моем updateview

def get_initial(self):
    initial = super().get_initial()

    initial['first_name'] = self.request.user.first_name
    initial['last_name'] = self.request.user.last_name
    initial['email'] = self.request.user.email
    initial['phone_number'] = self.request.user.phone_number
    initial['current_address'] = self.request.user.current_address
    initial['image'] = self.request.user.image

    return initial
Вернуться на верх