Django: Обновление и создание записи данных с помощью inlineformset_factory

Может кто-нибудь помочь мне, я пытаюсь использовать "inlineformset_factory" я действительно сделал его работающим, но вместо обновления записи он просто дублирует запись

вот мой view.py

def resume(request):
user = request.user.personaldetails

form1 = personalDetailsForm(instance=user)

workExpFormSet = inlineformset_factory(
    personalDetails, employmentHistory, form=employmentHistoryForm, extra=3, max_num=3)

formset = workExpFormSet(instance=user)

if request.method == 'POST':
    form1 = personalDetailsForm(request.POST, request.FILES, instance=user)
    formset = workExpFormSet(request.POST, instance=user)
    if form1.is_valid():
        form1.save()
    if formset.is_valid():
        formset.save()
    else:
        print(formset.errors)
    # print(formset)

return render(request, 'main/Client/resume.html', {'form1': form1, 'formset': formset})

Мой models.py

и, наконец, моя форма для настройки моей модели

class employmentHistoryForm(ModelForm):
JobTitle = forms.CharField(label="", required=False, widget=forms.TextInput(
    attrs={'type': 'text', 'class': 'form-control jobTitle', 'name': 'jobTitle'}))
start_date = forms.CharField(label="", required=False, widget=forms.TextInput(
    attrs={'type': 'text', 'class': 'form-control startDate', 'name': 'start_date'}))
end_date = forms.CharField(label="", required=False, widget=forms.TextInput(
    attrs={'type': 'text', 'class': 'form-control endDate', 'name': 'end_date'}))
employer = forms.CharField(label="", required=False, widget=forms.TextInput(
    attrs={'type': 'text', 'class': 'form-control employerName', 'name': 'employer'}))
city = forms.CharField(label="", required=False, widget=forms.TextInput(
    attrs={'type': 'text', 'class': 'form-control employerCity', 'name': 'city'}))
description = forms.CharField(label="", required=False, widget=forms.Textarea(
    attrs={'type': 'text', 'class': 'form-control employeeEditor', 'style': 'height: 100px;', 'name': 'description'}))

class Meta:
    model = employmentHistory
    fields = '__all__'
    exclude = ['personal']

Когда я ввожу/сохраняю данные в форме, она создает запись и добавляет другую запись с теми же данными из предыдущей записи, просто умножая последние введенные данные... но всякий раз, когда я пытаюсь просто изменить последние данные, она выдает ошибку :

[{'id': ['Это поле обязательно']}, {'id': ['This field is required.']}, {'id': ['This field is required.']}]

Потому что вы не включили поле id в свои шаблоны, или, возможно, реализовали его неправильно (Поскольку вы не включили код своего шаблона, я предполагаю, что проблема в этом, что вполне вероятно). Поскольку Forms не нашел никакого id, связанного с данными поста, он предполагает, что это запрос Create, а не edit.

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