Создание моделей "многие-ко-многим" в 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')