Я пытаюсь создать форму заказа для клиентов, клиент должен выбрать количество и номер карты, исходя из этого, должны быть некоторые расчеты для получения общей цены (цена за карту * количество). Как я могу установить значения (цены) для каждого номера_карты, а затем выполнить расчет и сохранить общую стоимость в базе данных? Я использую Django ПРИМЕЧАНИЕ: каждый номер_карты имеет свою цену.
forms.py
from django import forms
from .models import cardDatabase
card_number_choice = {
(7239, 7239),
(7227, 7227),
(7230, 7230),
(7217, 7217),
(2167, 2167),
(7214, 7214),
(7233, 7233),
(7237, 7237),
(7230, 7230),
(7229, 7229),
(7228, 7228),
(3730, 3730),
(5660, 5660),
(7224, 7224),
(7221, 7221),
(7241, 7241),
(7252, 7252),
(5642, 5642),
(2680, 2680),
(5659, 5659),
(2767, 2767),
(3718, 3718),
(5644, 5644),
(5645, 5645),
(5646, 5646),
(5665, 5665),
(5580, 5580),
}
quantity_choices = {
(50, 50),
(100, 100),
(150, 150),
(200, 200),
(250, 250),
}
class cardForm(forms.ModelForm):
card_number = forms.IntegerField(help_text="ex: 7643", widget= forms.Select(choices=card_number_choice))
content = forms.CharField(widget=forms.Textarea(attrs={'rows': 5, 'placeholder': 'What do you want to write on the card!'}), max_length=3000)
quantity = forms.IntegerField(help_text="Multiple of 50", widget=forms.Select(choices=quantity_choices))
phone_number = forms.IntegerField(help_text="ex: +966000000000")
class Meta:
model = cardDatabase
fields = ['card_number', 'quantity', 'phone_number', 'content']
views.py
from django.shortcuts import render_to_response, redirect, render
from .models import cardDatabase
from .forms import cardForm
from django.template.context_processors import csrf
def g (request):
all_cards = cardDatabase.objects.order_by('-id')[:1]
return render(request,'g.html',{'cards': all_cards})
def card(request):
if request.method == "POST":
form = cardForm(request.POST)
if form.is_valid():
form.save()
try:
return redirect('g')
except:
pass
else:
form = cardForm()
return render(request, 'cardDa.html', {'form':form})
models.py
from django.db import models
class cardDatabase(models.Model):
card_number= models.IntegerField(max_length=4)
content = models.TextField(max_length=3000)
quantity = models.IntegerField(max_length=5)
phone_number = models.IntegerField()