Создание моделей "многие-ко-многим" в Django

Я делаю модуль создания предложения на Django, у меня есть продукт и объект варианта, вариант продукта связан отношением многие-ко-многим. Я хочу сохранить продукты, выбрав их при создании предложения, но в то же время предложить возможность выбора вариантов под продуктами.

Проблема здесь в том, что продукты и варианты не разделены.

model.py

class offerProductVariant(models.Model):
   offerProduct = models.ManyToManyField(product)
   offerVariant = models.ManyToManyField(variant)

class offer(models.Model):
    offerName = models.CharField(max_length=50)
    offerCustomer = models.ForeignKey(customer,on_delete=models.CASCADE,null=True,blank=True)
    offerCompany = models.ForeignKey(company,on_delete=models.CASCADE,blank=True)
    offerDate = models.CharField(max_length=40)
    offerProductVariantMany = models.ManyToManyField(offerProductVariant,blank=True)

views.py

def teklifsave(request):
if not request.user.is_authenticated:
    return redirect('login')
if request.method == 'POST':
    form = offerCreate(request.POST)
    form2 = offerCreateProduct(request.POST)
    if form.is_valid():
        m = offer(
            offerName = form.cleaned_data['offerName'],
            offerCompany = form.cleaned_data['offerCompany'],
            offerCustomer = form.cleaned_data['offerCustomer'],
            offerDate = form.cleaned_data['offerDate']
        )
        m.save()
    if form2.is_valid():
        op = offerProductVariant()
        op.save()
        fproducts = form2.cleaned_data['offerProduct']
        print(fproducts)
        fvariants = form2.cleaned_data['offerVariant']
        print(fvariants)
        for fproduct in fproducts:
            print(fproduct)
            op.offerProduct.add(fproduct)
            op.save()
        for fvariant in fvariants:
            print(fvariant)
            op.offerVariant.add(fvariant)
            op.save()
        m.offerProductVariantMany.add(op)
    return redirect('offer')
return redirect('offer')
Вернуться на верх