如何在django ForeignKey字段中自定义排序顺序

时间:2010-10-25 06:34:08

标签: django django-models

class Article(models.Model):
    # usefull staff
    category = models.ForeignKey("Category")  
class Category(models.Model):
     parent = models.ForegnKey('self')

我想将类别选择器显示为<select>字段,其中包含已排序的类别树。 它应该看起来像

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

这是最好的方法吗?我希望使用来自ForeignKey类的继承,但它很复杂。也许整个问题是“如何继承多重继承的类?”

2 个答案:

答案 0 :(得分:0)

使用django-mptt表示数据库中的类别树。然后,您可以按每个类别的“左”值进行排序。

答案 1 :(得分:0)

我是通过继承ForeignKey类和重写方法

来实现的
def formfield():
   return MyChoiceField(choices = get_category_tree())

MyChoiceFieldChoiceField的孩子,我已经更正了验证。