2009-08-20 8 views
1

Nous avons trois modèles, Artist:Utilisation de list_filter avec les modèles intermédiaires

class Artist(models.Model): 
    family_name = models.CharField(max_length=50) 
    given_name = models.CharField(max_length=50) 

Group:

class Group(models.Model): 
    name = models.CharField(max_length=50) 
    members = models.ManyToManyField(Artist, through='Membership') 

et Membership:

class Membership(models.Model) 
    artist = models.ForeignKey(Artist) 
    group = models.ForeignKey(Group) 
    joined = models.DateField()  

Membership est un modèle intermédiaire reliant Artist et Group avec quelques données supplémentaires (date d'inscription, etc.) On m'a demandé de voir si l'on pouvait filtrer les artistes selon le groupe dans lequel ils se trouvent mais je n'arrive pas à comprendre comment faire cela.

Répondre

1

Si vous définissez un m2m entre l'artiste et le groupe en utilisant through = Membership, vous pouvez configurer un filtre directement sur le groupe sans passer par l'appartenance. Ne me souviens pas si la syntaxe est

list_filter = ['group'] 

ou

list_filter = ['group_set'] 

ou quelque chose de similaire.

+0

Merci pour votre réponse! J'ai essayé les deux et j'ai eu des erreurs en disant que le champ 'group' ou' group_set' n'existait pas. –

+0

Alors - la réponse marquée comme 'acceptée' est-elle incorrecte? –

Questions connexes