Django的;将子类别限制为某个主要类别

时间:2013-07-20 12:14:22

标签: python django

我有一个相当简单的问题,我可以通过执行查询动态获取CHOICES来实现,但我想知道在Django中是否有更多“本地”方式来执行此操作;

假设这个;

class Item(models.Model):

    name = name = models.CharField(max_length = 75)
    sub_category = models.ForeignKey('ItemSubcategory')

这将是层次结构的一个例子;

  • 类别:食物
    • 子类别:面包
      • 项目:老虎面包
      • 项目:褐色面包
      • 项目:白面包

这个逻辑没问题,但对于某些其他模型我想这样使用它;

class Item(models.Model):

    name = name = models.CharField(max_length = 75)
    sub_category = models.ForeignKey('ItemSubcategory', limit_to=('ItemCategory', 'Food'))

所以它会限制我用来仅显示食物子类别而不是其他类别下的所有其他子类别的下拉/过滤器。

1 个答案:

答案 0 :(得分:1)

您可以使用limit_choices_to参数:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to

class Item(models.Model):

    name = name = models.CharField(max_length = 75)
    sub_category = models.ForeignKey(
        'ItemSubcategory', 
        limit_choices_to={'ItemCategory': 'Food'}
    )

只是为了给你一个基本的想法。