Сессии в django не обновляются
Я начинающий веб-разработчик, и у меня есть проблема.
я создаю сайт электронной коммерции, следуя этому руководству на youtube. все шло хорошо, пока я не попытался получить доступ к данным сессии через ключ сессии в оболочке django. он возвращает пустой словарь, хотя он предназначен для возврата id продукта и цены. коды приведены ниже
вид
from django.shortcuts import render
from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from store.models import Product
from .cart import Cart
# Create your views here.
def cart_summary(request):
return render(request, 'store/cart/summary.html')
def cart_add(request):
cart = Cart(request)
if request.POST.get('action') == 'post':
product_id = int(request.POST.get('productid'))
product_qty = int(request.POST.get('productqty'))
product = get_object_or_404(Product, id=product_id)
cart.add(product=product, qty=product_qty)
response = JsonResponse({'test':'data'})
return response
cart.py
class Cart():
def __init__(self, request):
self.session = request.session
cart = self.session.get('skey')
if 'skey' not in request.session:
cart = self.session['skey']= {}
self.cart = cart
def add(self, product, qty):
product_id = product.id
if product_id not in self.cart:
self.cart[product_id]= {'price': str(product.price), 'qty':int(qty)}
self.session.modified = True
сценарий
<script>
$(document).on('click', '#add-button', function(e){
e.preventDefault();
console.log($('#select option:selected').text())
$.ajax({
type:'POST',
url:'{% url "cart:cart_add" %}',
data:{
productid: $('#add-button').val(),
csrfmiddlewaretoken:"{% csrf_token %}",
action: 'post'
},
success: function (json){
},
error: function (xhr, errmsg, err){}
})
})
</script>