Partage
  • Partager sur Facebook
  • Partager sur Twitter

Orienter objet.

Django dis moi que tu m'aimes.

Sujet résolu
Anonyme
    24 août 2014 à 13:20:31

    Bonjour,

    Ma question porte sur Python, même si le cas s'applique a Django, il s'agit d'un aspect du langage que je ne saisit pas encore suffisamment bien.

    Aujourd'hui, je cherche a générer automatiquement des formulaires Django.

    Pour ce faire je vous montre la classe que j'utilise

    class Form_idable(forms.Form):
        Bon1 = forms.BooleanField( required=False)
        Bon2 =forms.BooleanField(required=False)
        Bon3 =forms.BooleanField(required=False)
        Bon4 =forms.BooleanField( required=False)

    Comme vous le savez, le nom des variables de classe est utilisé par Django dans le gabarit: on ne peut donc pas mettre n'importe quoi sous peine de devoir faire le gabarit a la main.

    Ma question est donc de savoir comment je pourrais passer un objet itérable contenant les noms (Bon1, Bon2 ....) pour que Django génère tout seul. J'ai tenté le coup sans succès.

    Cordialement.

    Nogat4n

    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2014 à 13:48:58

      Tu peux générer une classe avec la fonction type(). Par exemple,

      taliste = "Bon1 Bon2 Bon3 Bon4".split()
      
      Form_idable = type("Form_idable", forms.Form, {nom:forms.BooleanField(required=False) for nom in taliste})



      • Partager sur Facebook
      • Partager sur Twitter
      yjltg.
        24 août 2014 à 13:49:08

        Un truc comme ça?

        liste = [forms.BooleanField(required=False) for _ in range(4)]

        edit: grillé en mieux

        -
        Edité par Derzal 24 août 2014 à 13:49:53

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          24 août 2014 à 14:25:59

          myForm = forms.BooleanField
          for i in range(1, 5):
              globals()['fond{}'.format(i)] = myForm(required=False)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            28 août 2014 à 13:25:21

            Merci.

            La simplicité paie.

            • Partager sur Facebook
            • Partager sur Twitter

            Orienter objet.

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown