2010-10-25 8 views
1
class Article(models.Model): 
    # usefull staff 
    category = models.ForeignKey("Category") 
class Category(models.Model): 
    parent = models.ForegnKey('self') 

Je veux afficher sélecteur de catégories comme un champ <select> avec un arbre de catégorie triée en elle. Il devrait ressembler àcomment personnaliser le tri ordre dans django champ ForeignKey

top level category1 
    lower level1 
    lower level2 
    even lower level 
    even lower level 2 
    lower level3 
top level category2 
    lower level500 

Quelle est la meilleure façon de le faire? J'espérais utiliser l'héritage de la classe ForeignKey, mais c'est sophistiqué. Peut-être que toute la question est "Comment hériter de multiplier les classes héritées?"

Répondre

0

Je l'ai fait en héritant classe ForeignKey et méthode redéfinie

def formfield(): 
    return MyChoiceField(choices = get_category_tree()) 

et MyChoiceField est un enfant de ChoiceField, où j'ai corrigé la validation.

0

Utilisez django-mptt pour représenter l'arborescence de la base de données. Ensuite, vous pouvez trier par la valeur «gauche» de chaque catégorie.

Questions connexes