Джанго передает аргумент от метода к методу - PullRequest
0 голосов
/ 24 мая 2019

Проблема в том, что у меня есть корзина, которая сохраняется в сессии, и после успешно созданного заказа эта сессия / корзина полностью очищается. И у корзины есть метод, который возвращает количество товаров, и после очистки корзины товаров он возвращает 0, что логично, но мне нужно сохранить сумму в переменной и передать эту переменную во второй метод, который принимает идентификатор заказа клиента, без изменения URL, то есть я хочу, чтобы в URL был только идентификатор, а не идентификатор + сумма. Мне нужно передать аргумент от одного метода к другому. Теперь я покажу, что я имею в виду.

views.py

def order_create(request):
  cart = Cart(request) # session
  sum = cart.get_total_price() # the value of the sum is saved to the variable
  if request.method == 'POST':
      form = OrderCreateForm(request.POST)
      if form.is_valid():
         # data storage
         cart.clear_session() # clear the session after a successful order
      return redirect(reverse('order:order_success', kwargs={'pk':order.id})) # how to pass here also the `sum` variable
  else:
       return HttpResponse('y')

Передать идентификатор заказа методу order_success

def order_success(request, pk, sum):
   print(sum)
   # data processing and data page return

urls.py

url(r'^order/(?P<pk>[0-9A-Fa-f-]+)$', views.order_success, name='order_success'),

Как вы можете передать значение в метод, не выпуская значение суммы в URL для каждого созерцания. Я прошу у вас помощи!

...