avaaren

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

Mar 7th, 2020
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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