2013-05-10 5 views
0

est ici une question délicate ... j'ai mes modèles comme le montre ci-dessous. Je montre classe C dans un menu déroulant, car il montre dans le modèle (c, b, a).menu déroulant Trier par classe et rubriques

Je voudrais commander par b et montrer une meilleure façon, avec un titre pour chaque b.

Mais je voudrais le montrer comme:

B (A)

c

c

c

c

Puis encore:

B (A)

c

c

Class A(CodeList) 
     Class Meta: 

Class B(Models.Model) 
    Name = models.Charfield(max_length=200) 
    a = models.ForeignKey(A); 
    def __unicode__ (self) : 
     return "%s (%s)" % (self.name, self.a.name); 
    def a_name(self) : 
     return self.a.name; 

Class C(Models.Model) 
    Name = models.Charfield(max_length=200) 
    b = models.ForeignKey(B); 
    def __unicode__ (self) : 
     return "%s (%s)" % (self.name, self.b.name, self.a.name); 
    def b_name(self) : 
     return self.b.name; 
    def a_name(self) : 
     return self.a.name; 

Toutes les idées?

Répondre

0

La commande doit être la partie plus facile. Réglez simplement l'option 'commander' dans les options Meta du C. Voici la partie correspondante des docs: https://docs.djangoproject.com/en/dev/ref/models/options/#ordering

Le regroupement est un peu plus compliqué. Je ne pense pas qu'il y ait un moyen de contourner le sous-classement Select-widget et à remplacer le méthode de rendu.

Questions connexes