Регистрация объектов Django с дочерними объектами

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

введите описание изображения здесь

model.py

from django.db import models
from firma.models import company

class variant(models.Model):
    name = models.CharField('Varyant Adı',max_length=200)
    price = models.IntegerField('Varyant Fiyat')    
    stok = models.IntegerField('Varyant Stok')    
    company = models.ForeignKey(company,on_delete=models.CASCADE)
    image = models.FileField(upload_to="variant",default="")
    def __str__(self):
        return f"{self.name}"
class product(models.Model):
    name = models.CharField('Ürün Adı',max_length=200)
    price = models.IntegerField('Ürün Fiyat')
    stok = models.IntegerField('Ürün Stok')
    variant = models.ManyToManyField(variant,blank=True)
    company = models.ForeignKey(company,on_delete=models.CASCADE)
    image = models.FileField(upload_to="product",default="")
    def __str__(self):
        return f"{self.name}"

model.py

class offerProductInfo(models.Model):
    offerProductName = models.CharField('Ürün Adı',max_length=200)
    offerProductPrice = models.IntegerField('Ürün Fiyat')
    offerProductStok = models.IntegerField('Ürün Stok')
    offerProductVariant = models.ManyToManyField(offerVariantInfo,blank=True)
    offerProductCompany = models.ForeignKey(company,on_delete=models.CASCADE)
    offerProductImage = models.ImageField(upload_to="product")
    def __str__(self):
        return f"{self.offerProductName}" 

view.py

def teklifsave(request):
    if not request.user.is_authenticated:
        return redirect('login')
    if request.method == 'POST':
        offerVariantId = request.POST.getlist('offerVariantId')
        offerProduct = request.POST.getlist("offerProducts")
        count = -1
        for fproduct in offerProduct:
            print(fproduct)
            count += 1
            h = variant.objects.get(id=offerVariantId[count])
            c = h.product_set.all()
            print(c)
            s = offerVariantInfo(
                offerVariantName = h.name,
                offerVariantPrice = h.price,
                offerVariantStok = h.stok,
                offerVariantCompany = h.company
            )
            s.save()
            z = product.objects.get(id=fproduct)
            c = offerProductInfo(
                offerProductName = z.name,
                offerProductPrice = z.price,
                offerProductStok = z.stok,
                offerProductCompany = z.company,
                offerProductImage = z.image
            )
            c.save()
            m.offerProduct.add(c)
            c.offerProductVariant.add(s)
        return redirect('offer')
    return redirect('offer')

шаблон (у меня он есть в моих элементах и он делает пост обработку, я не добавил его, потому что в верхнем и нижнем таре слишком много кода)

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