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 :

Changer le queryset d'un ModelChoiceField


Sujet :

Django Python

  1. #1
    Invité
    Invité(e)
    Par défaut Changer le queryset d'un ModelChoiceField
    Bonjour à tous.
    Pour faire simple j'ai un formulaire avec 2 champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class FormulaireForm(forms.Form):
        champ1 = forms.ChoiceField(choices = (("0", u"---------"), 
                                              ("1", u"1er Choix"), 
                                              ("2", u"2ème Choix")),
                                   required=True)
        champ2 = forms.ModelChoiceField(queryset=Objet1.objects.all(),
                                        required=True)
    Mon objectif est de générer la liste de tous les Objet1 dans le champ2 lorsque je sélectionne "1er Choix" dans le champs1.
    Et lorsque je sélectionne "2ème Choix" je souhaiterais qu'il me génère la liste de tous les Objet2 (Objet1 et Objet2 étant complètement différent).

    Au niveau du fichier de template, j'utilise de l'Ajax appuyé par la librairie Jquery pour générer la liste de tous les Objet1 ou de Objet2 selon le choix que j'ai fait dans champ1. Jusque là pas de problème.

    Lorsque je valide mon formulaire, dans le cas ou j'ai choisi d'utiliser la liste des Objet1, cela fonctionne parfaitement mais dans l'autre cas il me retourne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot assign "<Objet2: Toto>": "champ2.Objet1" must be a "Objet1" instance.
    Ce qui est tout a fait logique vu que dans le ModelChoiceField je lui ai spécifié un queryset qui retourne tous les Objet1 et non les Objet2.

    Ma question est donc la suivante : Est-il possible de changer le queryset selon la valeur de champ1 ?

    J'espère avoir été explicite
    Je vous remercie d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je fais un petit up de mon problème car il est à ce jour non résolu.
    Pour simplifier je voulais savoir s'il y était possible de modifier le queryset d'un ModelChoiceField à partir d'une template (utilisation d'Ajax certainement)?

Discussions similaires

  1. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 01h31
  2. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46
  3. Réponses: 2
    Dernier message: 26/06/2002, 13h16
  4. changer de repertoire et situer
    Par chateau dans le forum C
    Réponses: 4
    Dernier message: 24/06/2002, 11h27
  5. changer l'adresse d'un fichier...
    Par cava dans le forum C
    Réponses: 6
    Dernier message: 05/06/2002, 12h22

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