Accueil » Zope » Forum Zope » Forum Général Zope » Variable de session et boucle

 • Variable de session et boucle

Document Actions
Réponses: 2   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Variable de session et boucle

Posté par franckygos le 15/04/2008 18:57
Bonjour,

A l'aide !!!!

Désolé je ne suis pas encore un expert ...

J'ai une variable item issu d'une session qui contient :
{'510-322': 7, '510-999': 38, '510-007': 42, '510-777': 3, '510-115': 10, '510-122': 3}

Ce sont des éléments ajoutés par le script AddItem (Shoping cart)

J'aimerais faire une boucle pour récupérer les éléments :

<dtml-with "REQUEST.SESSION" mapping>
<dtml-if items>
<dtml-var items><br>
<dtml-else>
Votre caddy est vide
</dtml-if>
</dtml-with>

Lorsque je fais un <dtml-in items></dtml-in> j'ai une erreur Error Type: KeyError Error Value: 0

J'ai tenté de faire un split mais ca ne fonctionne pas et je suis convaincu que la variable items a bien les propriétés id et quantity séparément pour chaque élément...

Merci pour votre aide
  •  • Re: Variable de session et boucle

    Posté par jpcw2002 le 17/04/2008 09:27
    bonjour,

    pourquoi ne passes-tu pas par un script python au lieu d'une dtml-method.

    les gens qui font encore du dtml doivent se compter très facilement :)
    La syntaxe en sera beaucoup plus intuitive et lisible.

    La KeyError indique que tu n'interroges pas bien ton dictionnaire.

    Sans le code que veux-tu que l'on te dise de plus :)

    Un lien qui ressemble à ce que tu veux faire shopping cart with session

    @++
  •  • Re: Variable de session et boucle

    Posté par franckygos le 17/04/2008 17:29
    En fait pour ajouter des éléments au caddy j'appelle un script python , mais pour afficher le contenu je voulais le faire en DTML ...

    J'utilise justement ton exemple (lien), par contre j'aimerais le faire en DTML putot qu'en template (sans tal:repeat)

    AddItems :

    session=context.REQUEST.SESSION

    items=session.get('items',{})
    valid_items=['id'] for d in container.getItem()]

    for order in orders:
    quantity=hasattr(order, 'quantity') and order.quantity and \
    int(order.quantity) or 0
    if quantity != 0 and hasattr(order, 'id'):
    items=items.get(order.id, 0) + quantity

    session['items']=items

    Contenu_panier (dtml) :

    <dtml-with "REQUEST.SESSION" mapping>
    <dtml-if items>
    <dtml-var items><br>
    <dtml-else>
    Votre caddy est vide
    </dtml-if>
    </dtml-with>

    Merci pour ton aide