Обновление набора форм в Django

Я использую набор форм для сохранения данных в базе данных. Часть создания формы работает нормально, однако, обновление формы возвращает только экземпляр родительской модели, но экземпляр дочерней модели не возвращается. Любая помощь будет оценена по достоинству

Вот мои фрагменты кода:

Model.py

 class Sale(models.Model):
    billno = models.AutoField(primary_key=True)
    supplier = models.ForeignKey(WorkerDetails, on_delete=models.SET_NULL, null=True)
    created = models.DateTimeField(auto_now_add=True)


 class SaleDetails(models.Model):
    billno = models.ForeignKey(Sale, on_delete = models.CASCADE)
    producttype = models.ForeignKey(Producttype, on_delete=models.SET_NULL, null=True)
    quantity = models.DecimalField(default=0,decimal_places = 5, max_digits = 30)
    perprice = models.DecimalField(default=1,decimal_places = 5,max_digits = 30)
    totalprice = models.DecimalField(default=1,decimal_places = 5, max_digits = 30)

   

Forms.py

   class SalesForm(forms.ModelForm):

      .....
       class Meta:
           model = Sale
           fields = '__all__'



   class SalesDetailsForm(forms.ModelForm):
     ........
    
       class Meta:
           model = SaleDetails
           fields = ['quantity', 'perprice','producttype','totalprice']

   SalesFormset = formset_factory(SalesDetailsForm, extra=1)

views.py

  class SalesUpdateView(View):                                                      
       template_name = 'sales/sales-edit.html'
       def get(self, request,pk):
            try:
                billno = Sale.objects.get(pk=pk)
            except Sale.DoesNotExist:
            raise Http404
       #details = SaleDetails.objects.filter(billno=pk) 
       form = SalesForm(request.GET or None, instance=billno)
       formset = SalesFormset(request.GET or None,)             
       context = {
             'form'      : form,
             'formset'   : formset,
             }
       return render(request, self.template_name, context)
        
       def post(self, request):
           form = SalesForm(request.POST)
           formset = SalesFormset(request.POST)                                 
           if form.is_valid() and formset.is_valid():
               billobj = form.save(commit=False)
           for form in formset:                                               
                billitem = form.save(commit=False)
                billitem.billno = billobj                                       
                billobj.save() 
                billitem.save()
                messages.success(request, "Sold items have been registered successfully")
           return redirect('list-sales')
        form = SalesForm(request.GET or None, instance=billno)
        formset = SalesFormset(request.GET or None,)             
        context = {
             'form'      : form,
             'formset'   : formset,
             }
        return render(request, self.template_name, context)
Вернуться на верх