avaaren

ОБЪЯСНИТЕ СЕССИИ ПОЖАЛУЙСТА)))

Mar 7th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. from decimal import Decimal
  2. from django.conf import settings
  3. from shop.models import Product
  4.  
  5.  
  6. class Cart(object):
  7. def __init__(self, request):
  8.  """Инициализация объекта корзины."""
  9.  self.session = request.session <-- тут мы определяем локальную переменную сессии которая действительна только для объекта??
  10.  cart = self.session.get(settings.CART_SESSION_ID)
  11.  if not cart:
  12.  # Сохраняем в сессии пустую корзину.
  13.  cart = self.session[settings.CART_SESSION_ID] = {}
  14.  self.cart = cart
  15.  
  16.  def save(self):
  17.  # Помечаем сессию как измененную
  18.  self.session.modified = True <-- тут мы помечаем ЛОКАЛЬНУЮ сессию как измененную
  19.  
  20. НО ПОЧЕМУ ТОГДА ИЗМЕНЯЕТСЯ И REQUEST.SESSION ЕСЛИ МЫ ЕГО НАПРЯМУЮ НЕ ТРОГАЕМ НИГДЕ???
  21. НАПРИМЕР ТУТ?
  22.  
  23. @require_POST
  24. def cart_add(request, product_id):
  25.  cart = Cart(request)
  26.  product = get_object_or_404(Product, id=product_id)
  27.  form = CartAddProductForm(request.POST)
  28.  if form.is_valid():
  29.  cd = form.cleaned_data
  30.  cart.add(product=product,
  31.  quantity=cd['quantity'],
  32.  update_quantity=cd['update'])
  33.  return redirect('cart:cart_detail')
Add Comment
Please, Sign In to add comment