У меня есть модели Offer
& OfferItem
, как показано ниже, и мне нужно создать Offer
и OfferItem
на той же странице шаблона. Моя проблема в том, что я хочу сначала сохранить offer_form
, затем установить сохраненную запись предложения как связанную с полем itemOffer
, а затем сохранить offeritem_form
, как я могу это сделать? Или может быть мои модели и логика c совершенно неверны, если так, то есть ли другой способ сделать это?
* Я исключаю HStoreField , потому что мне нужно будет сохранить несколько OfferItem
s на одной странице (может быть, я снова ошибаюсь, я не знаю)
Вот мои модели et c.
Модели;
class Offer(models.Model):
offerCreate = models.DateTimeField(auto_now=False, auto_now_add=True)
offerOwner = models.ForeignKey(User, on_delete=models.CASCADE)
offerNumber = models.CharField(max_length = 150)
offerCondi = models.TextField()
offerTotal = models.FloatField()
def __str__(self):
return self.offerNumber
class Meta:
verbose_name = 'Offer'
verbose_name_plural = 'Offers'
class OfferItem(models.Model):
itemOffer = models.ForeignKey('sales.Offer', on_delete=models.CASCADE)
itemName = models.CharField(max_length = 150,null=True)
itemProduct = models.ForeignKey('products.Product', on_delete=models.CASCADE)
itemLeadtime = models.CharField(max_length = 150)
itemCost = models.FloatField()
itemPrice = models.FloatField()
itemCurrency = models.ForeignKey('products.Currency', on_delete=models.CASCADE)
itemQuantity = models.IntegerField()
itemOfferprice = models.FloatField()
def __str__(self):
return self.itemName
class Meta:
verbose_name = 'OfferItem'
verbose_name_plural = 'OfferItems'
Просмотр;
def createofferView(request):
offer_form = CreateOfferForm(request.POST or None)
offeritem_form = CreateOfferItemForm(request.POST or None)
if offer_form.is_valid() and offeritem_form.is_valid():
offer_form.save()
offeritem_form.save()
messages.success(request, 'Success!')
return redirect('offers')
return render(request, 'sales/createoffer.html',{'offer_form':offer_form,'offeritem_form':offeritem_form})