Django-fr

Forum

#1 21-05-2015 08:43:19

Tiff3165
Membre
Inscription : 21-05-2015
Messages : 1

Filtrer un champ ManyToMany

Bonjour,
J'ai 3 modèles:

class Chaine(models.Model):
    nom = models.CharField(max_length=100)
    def __str__(self):
        return self.nom

class Poste(models.Model):
    nom = models.CharField(max_length=100)
    chaine = models.ForeignKey('FAL')
    suivants = models.ManyToManyField('self', blank=True)
    zones = models.ManyToManyField('Zone', blank=True)
    def __str__(self):
        return self.nom

class Zone(models.Model):
    nom = models.CharField(max_length=100)
    situation = models.ForeignKey('Situation')
    chaine = models.ForeignKey('FAL')
    def __str__(self):
        return '{0} {1}'.format(self.nom, self.situation)

Je voudrais pouvoir filter, dans le formulaire de Poste, le champs zones pour avoir toutes les Zones qui ont la même chaine. L'id de la chaine est passé en paramètre dans l'url et je le récupère avec self.kwargs['chaine'].
J'utilise les vues génériques pour le crud (CreateView, ListView, ...). Ce filtre est pour le CreateView.

Quelqu'un aurait-il une idée svp ?

Hors ligne

#2 25-05-2015 21:39:18

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Filtrer un champ ManyToMany

Le mieux est de faire ça via un peu de javascript coté utilisateur et ne pas oublier la vérification dans le formulaire.
Coté javascript, un coup de google devrait donner des snippets qui lient les données de la combobox avec le champs.

Hors ligne

Pied de page des forums