Django session project cart
Я пытаюсь отобразить данные, которые я поместил в сессию для моего проекта корзины покупок, который я разрабатываю, но здесь я не могу восстановить товар, код которого я передал в качестве параметра
def index(request):
mes_produits={'produits':[{'code':'2BG12','nom':'banane sucré','prix':1500},
{'code':'MLO23','nom':'pomme de terre','prix':1800}]}
parcou=mes_produits['produits']
contex={'produits':parcou}
return render(request,'shop/index.html',contex)
def cart_add(request, code):
dico={'produits':[{'code':'2BG12','nom':'banane sucré','prix':1500},
{'code':'MLO23','nom':'pomme de terre','prix':1800}]}
mes_produits=dico['produits']
selected_product = next((item for item in mes_produits if item["code"] == code), None)
if selected_product != None:
request.session['nom']=selected_product.get('nom')
request.session['prix']=selected_product.get('prix')
contex={'nom':request.session['nom'],'prix':request.session['prix']}
return render(request, 'cart/cart_detail.html',contex)
car_detail.html
{% for key,value in request.session.items %}
Nom : {{value.nom}}
Prix : {{value.prix}}
{% endfor %}
Я получаю пустую страницу только с названием ключей
Ваш объект сессии является dict, а не списком кортежей. Попробуйте использовать этот код в шаблоне:
Nom : {{request.session.nom}}
Prix : {{request.session.prix}}
Но вы уже установили переменные в контексте, поэтому вы можете сделать:
Nom : {{nom}}
Prix : {{prix}}
# And your views.py
def cart_add(request, code):
dico={'produits':[{'code':'2BG12','nom':'banane sucré','prix':1500},
{'code':'MLO23','nom':'pomme de terre','prix':1800}]}
mes_produits=dico['produits']
selected_product = next((item for item in mes_produits if item["code"] == code), None)
if selected_product != None:
context={
'nom':selected_product.get('nom'),
'prix':selected_product.get('prix')
}
else:
context = {}
return render(request, 'cart/cart_detail.html',context)
Возможно, вы не понимаете, как использовать сессию? https://docs.djangoproject.com/fr/4.1/topics/http/sessions/