Кажется, не удается получить мой модельный набор форм для обновления моей записи - PullRequest
0 голосов
/ 08 мая 2020

Функция создания записи работает отлично, но проблема заключается в обновлении. функция обновления может извлечь данные из базы данных, но вы не можете сохранить какие-либо изменения.

вот мой

view.py '' ' создать функцию просмотра

def HunCreateView(request):
     BenefitFormset = modelformset_factory(Staff, form=BenefitForm)
     form = HonpvForm(request.POST or None)
     formset = BenefitFormset(request.POST or None, queryset=Staff.objects.none(), prefix ='marks')
     if request.method == 'POST':
         if form.is_valid() and formset.is_valid():

             try:
               with transaction.atomic():
                   pv = form.save(commit=False)
                   profileid = request.user.profile.id
                   pro = Profile.objects.get(id=profileid)
                   pv.worker = pro
                   pv.save()

                   for staff in formset:
                       data = staff.save(commit=False)
                       data.Pv_reference = pv
                       data.save()
             except IntegrityError:
                print("Error Encountered")
             messages.success(request, 'Pv created successfully')
             return redirect('pv:userdash')
      context ={'form':form, 'formset':formset}
      return render(request,'pv/Honurarium.html',context) '''

функция обновления

def HunupdateView(request,pk):
       pupdate= Pv.objects.get(IA_System_Code=pk)

supdate = Staff.objects.filter(Pv_reference=pk)
BenefitFormset = modelformset_factory(Staff, form=BenefitForm)
form = HonpvForm(instance=pupdate)
formset = BenefitFormset(queryset=supdate, prefix='marks')
if request.method == 'POST':
    if form.is_valid() and formset.is_valid():

        try:
            with transaction.atomic():
                pv = form.save(commit=False)
                profileid = request.user.profile.id
                pro = Profile.objects.get(id=profileid)
                pv.worker = pro
                pv.save()

                for staff in formset:
                    data = staff.save(commit=False)
                    data.Pv_reference = pv
                    data.save()
        except IntegrityError:
            print("Error Encountered")
        messages.success(request, 'Pv created successfully')
        return redirect('pv:userdash')
   context ={'form':form, 'formset':formset}
   return render(request,'pv/Honurarium.html',context)

и вот мой url.py

path('pv/honurarium/',views.HunCreateView, name = 'pv-honurarium'),
path('pv/<int:pk>/update/honurarium',views.HunupdateView, name ='hunupdate')

Добавление дополнительных и удаление полей набора полей обрабатывается jquery

. Мой вопрос: каждый раз, когда я нажимаю на кнопку «Отправить», для обновления ничего не происходит, форма просто перезагружается со старыми данными в нем.

пожалуйста, я новичок в django, и любая помощь будет вам очень благодарна.

...