代码之家  ›  专栏  ›  技术社区  ›  Vasiliy Stavenko

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

  •  1
  • Vasiliy Stavenko  · 技术社区  · 15 年前
    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 回复  |  直到 15 年前
        1
  •  0
  •   Daniel Roseman    15 年前

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

        2
  •  0
  •   Vasiliy Stavenko    15 年前

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

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

    MyChoiceField 是的孩子 ChoiceField

    推荐文章