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.