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/

Вернуться на верх