IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zope Python Discussion :

[Zope] Passer une instance en paramère dans une DTML method


Sujet :

Zope Python

  1. #1
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut [Zope] Passer une instance en paramère dans une DTML method
    Dans une DTML Method, j'ai le bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <dtml-call "Script.Python.pRedim_Image(image,param)">
    .

    En procédant de la sorte, le paramètre image qui est passé correspond au nom de l'image.
    Or, j'ai besoin que ce soit l'instance de l'image qui soit passée.
    Comment procéder ?

  2. #2
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Si tes images sont dans le meme container, tu pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    obj = restrictedTraverse('image_container_path').objectValues('Image')
    img_map = {}
    for elm in obj:
      img_map[elm.id] = elm #en même temps je ne sais pas si tu peux affecter un objet a une clé...
    La tu as un dictionnaire avec l'id de l'image comme clé et l'objet comme valeur. Ensuite tu l'adaptes à ton code.

    @+

  3. #3
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    J'ai fait un script python :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    obj = context.restrictedTraverse('Image/Produit').objectValues()
    img_map = {}
    for elm in obj:
    	img_map[elm.id] = elm
    return img_map
    où Image/Produit contient bien des images (Image est un objet Folder, Produit un objet LocalFS).

    Mais le script ne fait rien et ne renvoie rien !!!

  4. #4
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Après quelques tests, il semble que restrictedTraverse ne fonctionne pas avec un objet de type LocalFS.

    Pour reprendre :

    j'ai un objet Folder Image.
    Dedans, il y a un objet LocalFS Produit, qui pointe sur un répertoire du disque dur contenant des images.
    Ce que je voudrais, c'est pouvoir récupérer ces images en tant qu'objet dans Zope.

  5. #5
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    ah tu utilises le produit localFS pour referencer tes images?
    Alors là désolé je ne peut vraiment pas t'aider...

    Edit: ah oui mais en fait je viens de me souvenir que j'associais elm.getPhysicalPath() à ma clé elm.id pour pour pouvoir y acceder dans un de mes scripts python en faisant '/'.join(obj[elm.id]) ... maintenant je ne sais pas si tu en as l'utilité

  6. #6
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Merci pour ton aide.
    En fait, j'ai trouvé une autre solution pour mon problème.
    Je n'ai pas besoin de charger l'image en tant qu'objet, car c'était déjà fait avec un autre script python que j'ai décortiqué et mieux compris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2005] Connexion à une instance par default dans une cohabitat°
    Par dari68 dans le forum Administration
    Réponses: 2
    Dernier message: 21/02/2014, 16h15
  2. Réponses: 14
    Dernier message: 23/04/2012, 22h32
  3. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  4. Comment créer une liste ou une instance de classe dans une fonction ?
    Par Neolander dans le forum Général Python
    Réponses: 9
    Dernier message: 05/03/2008, 19h22
  5. Réponses: 3
    Dernier message: 02/09/2007, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo