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 :

correction dispatch action


Sujet :

Zope Python

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut correction dispatch action
    bonjour,
    pour executer au choix 2 templates, j'ai effectuée ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <form name="searchform"
                    action="dispatch_action">
    in
        <select name="objects_selection">                              
        <option value="obj1">obj1</option>                           <option value="obj2">obj2</option>                         
                         </select>
    <label for="chk_0"> Details
      <p>
    <input type="checkbox" name="chk_0" id="chk_0" title="Request information" />
    </p>
     
    <p>
    <input class="searchButton"
                               type="submit"
                               value="Search"
                               accesskey="accesskeys-search"
                               tal:attributes="tabindex tabindex/next"
                               i18n:attributes="value accesskey" /></p>
     </form>
    si l'utilisateur selectionne un object dans la liste et coche la chekbox alors il fera apelle a "affiche_table" sinon "search".

    et le code de ma dispatch_action est comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     def dispatch_action(self,REQUEST) :
            if REQUEST['chk_0'] :
            return self.affiche_table.pt()
            else :
            return self.search.pt()
    mais j'ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RuntimeError: CMFPlone/skins/plone_forms/dispatch_action.py has errors.
    alors elle est ou ma faute?
    Merci d'avance

  2. #2
    Membre averti
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Points : 342
    Points
    342
    Par défaut
    Et en essayant comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def dispatch_action(self,REQUEST) :
            if REQUEST['chk_0'] :
                    return self.affiche_table.pt()
            else :
                    return self.search.pt()

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    pareille cela ne passe pas

  4. #4
    Membre averti
    Avatar de Alain_72
    Inscrit en
    Août 2004
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 180
    Points : 342
    Points
    342
    Par défaut
    C'est dans le module dyspatch_action.py qu'il semble y avoir d'autres erreurs (l'absence d'indentation dans la fonction en était une).

    Tu peux donner le code complet du module ?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    c'est le code complet que je t'es anvoyer.
    je débute en python ; alors...
    je sait pas esqu'il faut rajouter autre chose?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Ça semble être un problème d'indentation ; essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     def dispatch_action(self,REQUEST) :
            if REQUEST['chk_0'] :
                return self.affiche_table.pt()
            else :
                return self.search.pt()

    pascal de oliveira
    RamaPlus

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 74
    Points : 66
    Points
    66
    Par défaut
    Pas tres explicite ton titre...

    La plupart des post peuvent s'appeler ainsi

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    oui je le sait mais esque vous pouvez m'aider?

  9. #9
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    no c'est pas cela, car il es bien indenté chez moi.
    je suis vraiment perdu, si vous avez une idée sur la question , ou une autre manière de le faire!
    Merci de m'aider

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     def dispatch_action(self,REQUEST) :
            if REQUEST['chk_0'] :
                return self.affiche_table.pt()
            else :
                return self.search.pt()
    vu que je commence à te connaître :-)

    c'est dans quelle classe que tu as mis çe bout de code ?
    en as tu une au moins ?

    ensuite as t'elle une méthode affiche_table.pt() et search.pt().

    Bref j'ai vraiment l'impression que t'as rajouté un fichier dispatch_action.py sur ton file_system et s'il ne contient que le code que tu nous as montré ça ne risque pas de fonctionner

  11. #11
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    j'ai un affiche_table.pt et un search.pt , ils existes.
    mais par contre c'est vrai que je ne c'est pas ou rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     def dispatch_action(self,REQUEST) :
            if REQUEST['chk_0'] :
                return self.affiche_table.pt()
            else :
                return self.search.pt()
    je savais pas dans qlq classe le rajouter!!

  12. #12
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    es que c'est juste d'apeller "dispatch_action" de cete façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <form name="searchform"
                    action="dispatch_action">

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut tu n'as pas besoin de script
    Tu appelles des méthodes de classes qui n'existe pas et tu invoques 'self' alors que tu n'as aucune instance, bref tu ne sais pas ce que tu fait, ni comment tu le fais !

    L'infrmatique en général, et Zope en particulier ce n'est pas du loto.
    Il faut te documenter, lire le code existant.

    Parce que le temps que tu perds à tester des trucs au hasard, aurait été bien mieux employé à lire la doc des ZPT par exemple.

    crées une page "rendu" que tu appelles depuis l' action de ton form dans ton portlet

    voici le code de ta page "rendu"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      <div tal:define="coche python:test(context.REQUEST.form.has_key('chk_0'),1,0)">
     
      <div tal:content="structure here/affiche_table.pt"
           tal:condition="coche"/>
     
      <div tal:content="structure here/search.pt"
           tal:condition="not:coche"/>
     
      </div>
    l'idéal aurait d'utiliser les macros mais tant que tu n'auras pas lu la doc, ni testé les exemples qui vont avec ....

    donc si coche ça t'affichera le contenu de ta page affiche_table.pt
    sinon celui de search.pt

    C'est bien ce que tu voulais non ?

  14. #14
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    oui c'est ce que je veux ,
    j'ai esseyer mais il trouve pas le chemin
    il faut enlever le (.pt)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <div tal:define="coche python:test(context.REQUEST.form.has_key('chk_0'),1,0)">
     
      <div tal:content="structure here/affiche_table"
           tal:condition="coche"/>
     
      <div tal:content="structure here/search"
           tal:condition="not:coche"/>  </div>
    Merci encore

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/09/2008, 20h07
  2. Dispatch action et Acegi
    Par tentos dans le forum Struts 1
    Réponses: 0
    Dernier message: 07/08/2008, 17h40
  3. [Struts-Layout] Datagrid et dispatch action
    Par sousoujda2 dans le forum Struts 1
    Réponses: 5
    Dernier message: 15/04/2008, 12h13
  4. Problème de Dispatch Action
    Par LeLapinVengeur dans le forum Struts 1
    Réponses: 11
    Dernier message: 26/12/2006, 16h50
  5. Problème avec dispatch action
    Par Zanton dans le forum Struts 1
    Réponses: 5
    Dernier message: 24/10/2006, 14h10

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