У меня есть для l oop со скрытым вводом в каждом. Я пытаюсь ввести его в базу данных транзакций с помощью:
Models.py
class TransDetail(models.Model):
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=15,decimal_places=2)
amount = models.IntegerField()
sumprice = models.DecimalField(max_digits=15,decimal_places=2)
no_note = models.CharField(max_length=200)
class Transaction(models.Model):
no_nota = models.CharField(max_length=200)
total_nota = models.DecimalField(max_digits=15,decimal_places=2)
tanggal = models.CharField(max_length=200)
HTML Template
<table>
<tbody>
<form method="POST" action="{% url 'transactionadd' %}">
{% csrf_token %}
{% for name,amount,price,sumprice in x %}
<tr>
<td>{{name}}
<input type="hidden" name="name" value="{{name}}">
</td>
<td>{{amount}}
<input type="hidden" name="amount" value={{amount}}>
</td>
<td>{{price}}
<input type="hidden" name="price" value={{price}}>
</td>
<td>{{sumprice}}
<input type="hidden" name="sumprice" value={{sumprice}}>
<input type="hidden" name="no_note" value={{no_nota}}>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="hidden" name="no_nota" value={{no_nota}}>
<input type="hidden" name="total_nota" value={{sumcart}}>
<input type="hidden" name="tanggal" value={{now}}>
<h3> Your cart total is {{sumcart}}</h3>
<hr/>
<button type="submit" class="btn-success">Confirm</button>
</form>
Views.py
def transactionadd(request):
form1 = TransForm(request.POST or None)
form2 = TransDetailForm(request.POST or None)
if form1.is_valid() and form2.is_valid():
form1.save()
form2.save()
messages.success(request,"Transaction recorded")
Cart.objects.all().delete()
return redirect('index')
context={
'form1':form1,
'form2':form2
}
return render(request, 'cart.html', context)
Проблема заключается в том, что каждый раз, когда я подтверждаю транзакцию, в базу данных вводится только одна строка ввода (последний объект). Допустим, я положил гамбургер и хот-дог в корзину и создал транзакцию. В базе данных транзакций я получу только хот-дог, но не гамбургер. Как я могу решить это?