Есть модель TeamParticipant и модель-форма TeamParticipantUpdateForm.
Есть поля email, name, surname, все они обязательные.
Нужно отредактировать запись БД через модель через POST запрос, но есть проблема. Например, если я хочу отредактировать только email, то валидация выдает мне ошибку, что name и surname обязательные поля.
Но дело в том, что это ведь редактирование, я понимаю, что эти поля обязательные, но в теории они ведь должны браться из модели TeamParticipant.
Модель TeamParticipant
class TeamParticipant(models.Model):
email = models.EmailField('Email')
name = models.CharField('Имя', max_length=64)
surname = models.CharField('Фамилия', max_length=64)
Модель TeamParticipantUpdateForm
class TeamParticipantUpdateForm(ModelForm):
class Meta:
model = TeamParticipant
fields = ['email', 'name', 'surname',]
Сценарий
request = HttpRequest()
request.POST = {
"email": "testparticipantupdated@ya.ru",
}
participant = TeamParticipant.objects.get(email="invitedparticipant@ya.ru")
participant_data = TeamParticipantUpdateForm(
request.POST,
instance=participant
)
if participant_data.is_valid():
participant_data.save()
# Тут выдает ошибку, что name и surname не заполнены, хотя я передал параметр instance в TeamParticipantUpdateForm
Итого, как сделать так, чтобы можно было в POST передать только email, и только он обновился в БД при save. Единственное, что удалось, это удалить name и surname из TeamParticipantUpdateForm, тогда вроде нормально, но это не решение.