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 :

inserrer valeur d'un attribut


Sujet :

Zope Python

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut inserrer valeur d'un attribut
    bonjour,

    j'ai créé un produit et modifié son base edit
    je voudrais inserrer une valeur dans une propriété de mon produit en fonction de l'utilisateur
    je pense avoir le code qui permet de tester si l'utilisateur est authentifié mais je n'arrive pas à inserrer ma valeur dans le champ

    voici un bout de mon form_edit en question:
    <table width="100%">
    <tr class="even">
    <td>
    <!--if mon_user = authentifié
    alors mon objet.attribut = qqchose -->

    <metal:fieldMacro use-macro="python:here.widget('type_experience', mode='edit')" />
    </td>
    <td>
    <metal:fieldMacro use-macro="python:here.widget..../>
    .....................
    </td>
    </tr>
    </table>
    si quelqu'un peut m'aider à résoudre la partie de code en commentaire
    surtt la partie insertion de la valeur
    merci d'avance

  2. #2
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Je pense qu'il faut que tu te serves du langage "tal". Dans ta balise tu vas mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tal:condition="python:mon_user = authentifié"
    puis pour affecter la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tal:attributes="value qqchose"
    Par exemple, si tu veux faire un attribut caché, ça peut donner ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <input type="hidden" 
           name="attribut" 
           tal:condition="python:mon_user = authentifié" 
           tal:attributes="value qqchose" />
    Je crois que ça, ça doit pouvoir t'aider. Si ce n'est pas le cas, est ce que tu pourrais en dire un peu plus sur ton problème. Par exemple ; c'est quoi ton objet ? C'est l'objet que tu es en train d'éditer ?

    Edit : juste une petite chose, est ce que tu pourrais mettre ton code entre balise [*code][*/code] (sans les *). Ca permet que ton code soit plus lisible. merci

  3. #3
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    merci pour ta réponse

    oui en effet la variable que je veux renseigner est un attribut de l'objet.

    en gros j'ai un objet avec plusieurs attributs.
    mon objet_edit permet de les renseigner soit par des champs de texte avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <metal:fieldMacro use-macro="python:here.widget('type_experience', mode='edit')" />
    soit par un traitement en fonction de sont role.

    est ce que ta réponse est tjs bonne? parce que j'avais deja testé et ca n'inserrait pas ds mon objet
    en attendant je vais tester
    merci

  4. #4
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    ça peu peut être marcher, mais je ne suis pas sur.

    Le truc c'est que je n'ai jamais touché au base_edit, donc je n'en sais pas beaucoup plus que toi

    J'ai fais un petit test intéressant en tout cas, dans une zpt qui me permet d'afficher les informations que j'ai sur une personne. Pour afficher le champ fax, j'ai mis ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span tal:define="tmp python:here.setFax('0303030303')" tal:content="python:here.getFax()" />
    et il m'a affiché le numéro 0303030303 et non le numéro de la personne. Donc il semble que pour modifier un attribut, il y a une fonction par défaut dont le nom commence par 'set' suivi du nom de ton attribut dont la première lettre est en majuscule.

    par exemple pour l'attribut quelqueChose tu vas avoir la fonction setQuelqueChose('valeur')

    Avec ça, ça doit pouvoir marcher

  5. #5
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    ok merci je vais essayer ta technique

  6. #6
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    ben non finallement ca marche pas
    je dois mal m'y prendre
    merci qd mm

  7. #7
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    peux tu mettre ton code ici que je puisse y jeter un oeil ?

  8. #8
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    alors j'ai cherché des infos selon ce que tu m'as dis (les mutators)

    d'apres ce que j'ai vu la: http://www.zopera.org/Members/fcarli...128332299/view

    il est nécessaire de créer ses mutators (contrairement aux accessors get)
    donc j'ai repris le code de mon objet pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class PloneCandidat(CandidatLock,FileContent):
        """PloneCandidat class"""
        MyPloneCandidat= MyPloneCandidatSchema.copy()
        MyPloneCandidat['title'].mutator= setPloneCandidatTitle
        ...
     
        def setPloneCandidatTitle(self,value):
            self.setTitle(value)
    mais lors de la reinstallation de mon objet il n'est plus la

  9. #9
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    et est ce que tu es allé voir dans l'interface d'administration de zope si tu avais un message d'erreur ?

    Mon zope étant installé en local, l'adresse pour y accéder c'est :
    localhost:8080/manage

    Ensuite tu vas dans Products, et tu devrais retrouver la liste de tous les produits installés.

  10. #10
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    bon j'ai remis une ancienne version de mon produit recréé le mutator
    et ca a l'aire de marcher mieux
    est ce que tu connaitrais la syntaxe la plus simple pour inserrer?

  11. #11
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    A part celle que je t'ai proposé avec le tal:define, je ne vois pas trop, et c'est vrai que c'est un peu de la bidouille.

  12. #12
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    bon ben dès que je rajoute mon mutator je ne retrouve plus mon produit
    meme apres le quick install

    mon pb est que je crée mon produit à partir d'un deja existant et je suis sur que je pars sur de mauvaises bases mm si pour l'instant tout marche.
    je dois avoir pleins de lignes de parametres en trop du coup c'est moins evident d'intervenir dans le code

    je vais continuer ma quete !!!

    merci pour tout

  13. #13
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Oui en effet, je crois que c'est préférable de commencer par la base et de se faire un produit 100% fait par toi.

    J'avais fait comme toi au départ et je n'arrivai pas à m'y retrouver. Maintenant que je me suis lancé dans mon produit, ça va mieux. Et ce que je fais, je comprends pourquoi je le fais.

Discussions similaires

  1. [xslt] affecter la valeur d'un attribut HTML
    Par ouioui2000 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/12/2005, 10h49
  2. modifier la valeur d'un attribut xml
    Par totoche dans le forum ASP
    Réponses: 2
    Dernier message: 13/12/2005, 15h01
  3. [XSD] test de la valeur d'un attribut
    Par ka0z dans le forum Valider
    Réponses: 3
    Dernier message: 21/08/2005, 20h46
  4. Réponses: 2
    Dernier message: 07/07/2005, 18h11
  5. Valeur d'un attribut
    Par DarkMoox dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/10/2004, 18h31

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