У меня есть 3 модели, и я хочу сохранить их, они имеют отношение между ними, вы можете изменить что-либо, и у меня есть еще одна проблема, связанная с использованием функции js клон функции, чтобы добавить столько элементов, сколько я хочу в форме шаблона
class Item (models.Model):
name = models.CharField(("Item"), max_length=50)
description = models.TextField(("Description"),blank=True, null=True)
category_id = models.ForeignKey(ItemCategory, on_delete=models.CASCADE,blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class RFQ (models.Model):
title = models.CharField(("Title"), max_length=100)
# qty = models.CharField(("Quantity"), max_length=50)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
item = models.ManyToManyField(Item, through='RFQItem')
note = models.TextField(("Note"),blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class RFQItem (models.Model):
RFQ = models.ForeignKey(RFQ, on_delete=models.CASCADE)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
price =models.FloatField(("Price"), blank=True)
qty = models.FloatField(("Quatity"), blank=True)
примечание Я использую HTML и bootstrap в шаблоне, а не Django форму, как я могу обработать это в представлении и сохранить его
Я пытаюсь что-то подобное, но выдает ошибку и не может сохранить это
Это мой код просмотра
def create_RFQ(request, project_id):
context = {}
print('aaaaaaaaaaa')
if request.method == 'POST':
print(request.POST)
print(project_id)
if not request.user.is_authenticated:
return redirect("login")
items = Item.objects.all()
# context = {}
if request.method == 'POST':
print('*-*-*-*-')
form1 = RFQCreate(request.POST)
form2 = ItemCreate(request.POST)
form3 = RFQItemCreate(request.POST)
form1.title = request.POST['title']
form1.project = Project.objects.get(pk=project_id)
print('form1')
print(form1.fields)
form1.project = project_id
form2.name = request.POST['title']
if form1.is_valid():
print('form1 valid')
if form2.is_valid():
print('form2 valid')
if form3.is_valid():
print('form3 valid')
if form1.is_valid() and form2.is_valid() and form3.is_valid():
a = form1.save()
b = form2.save()
c = form3.save(commit=False)
c.rfq = a
c.item = b
c.save()
# print(form1.cleaned_data['title'])
print('form2')
print(form2)
print('form3')
print(form3)
else:
print('*************')
messages.error(request, f'check error')
else:
form1 = RFQCreate()
form2 = ItemCreate()
form3 = RFQItemCreate()
context['create_rfq'] = form1
context['create_item'] = form2
context['create_rfqitem'] = form3
return render(request, 'RFQs/create_RFQ.html', context)