0

我有一个相当简单的问题,我可以通过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'))

因此,它会限制我将使用的下拉列表/过滤器仅显示食物子类别,而不是其他类别下的所有其他子类别。

4

1 回答 1

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'}
    )

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

于 2013-07-20T12:29:59.583 回答