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

Django Python Discussion :

Utilisation du MultipleChoiceField


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut Utilisation du MultipleChoiceField
    Salut
    j'ai un fichier forms.py dans lequel j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    from propriete.models import Hobby
     
    def loisir():
            out=[]
            d=Hobby.objects.filter(publier=True)
            for i in d:
                out.append((i.id,i.libelle))
            return tuple(out)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nom=forms.CharField(label=_("Nom"),max_length=12)
    hobbies=forms.MultipleChoiceField(label=_(u"Centre d'interêts"),choices=loisir(),widget=forms.CheckboxSelectMultiple,required=True)
    Ensuite j'ai un model avec un champ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     user=models.CharField(label=_("Nom"),max_length=12)
     hobbies=models.ManyToManyField(Hobby,limit_choices_to={'publier':True})
    D'abord j'aimerai savoir si il ya possibilité de personnalisé l'affichage du champs hobbies. {{form.hobbies}} m'affiche une liste:<ul><li>...</li></ul>
    Mon second problème est que quand j'essaye d'enregistrer mon formulaire j'ai cette erreur:
    'hobbies' is an invalid keyword argument for this function

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour ta première interrogation, si j'ai bien compris ce que tu demandais, Django peut générer ton code html pour l'affichage de ton formulaire.
    Dans ta template peut utiliser l'un des tag suivant : {{ form.as_table }} , {{ form.as_ul }} ou {{ form.as_p }} (voir ce lien)

    Si c'est pour changer uniquement le type d'affichage de ton champs , tu peux utiliser les widgets (voir ce lien)

    En espérant que cela puisse t'aider .

  3. #3
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    Salut
    Merci pour ta reponse.
    J'ai résolu mon problème en définissant une classe TableCheckboxSelectMultiple
    à la manière de CheckboxSelectMultiple avec la fonction render me renvoyant un output fait à base de <table>

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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