Регистрация объектов 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')
шаблон (у меня он есть в моих элементах и он делает пост обработку, я не добавил его, потому что в верхнем и нижнем таре слишком много кода)