Используйте Javascript для вызова функции в models.py и обновления поля модели
Я разрабатываю сайт электронной коммерции. Я хочу, чтобы мои клиенты могли просматривать обновленное поле total_price на боковой панели, расположенной рядом с формой заказа. Мой model.py выглядит следующим образом:
class Order(models.Model):
Customer = models.ForeignKey(User, on_delete=models.CASCADE)
no_of_pages = models.PositiveIntegerField(default=1)
def total_price(self):
price_per_page = 20
return no_of_pages * price_per_page
Теперь у меня есть views.py и forms.py. Я также создал html-шаблон для отображения формы и предоставления пользователю возможности оформить заказ, указав количество страниц. Мой views.py выглядит следующим образом:
def OrderView(request):
order_list = Order.objects.all()
if request.POST:
form = OrderingForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
return render(request, 'orderingsystem/ordercreate.html', {"form": OrderingForm})
Моя цель - отобразить общую стоимость на стороне страницы заказа, как только клиент выбирает количество страниц без какого-либо HttpResponse, потому что форма еще не отправлена на этом этапе
Например:
Если клиент выбирает одну страницу, общая цена, которая будет отображаться = 1 * 20 = 20; если клиент выбирает 2 страницы, виджет боковой панели, который отображает общую цену, автоматически обновляется до 2 * 20 = 40, без какого-либо вызова Http. Другими словами, я хочу, чтобы что-то вроде JavasScript вызывало def total_price()
в моей модели Order
без необходимости отправки формы. После отправки форма будет сохранена в моей базе данных. У кого-нибудь есть идеи, пожалуйста?