Django管理员。限制多对多领域的选择

时间:2016-12-16 21:09:13

标签: django django-admin

我有很多对很多的领域。我想限制管理员在其M2M小部件中显示的选择。

我有一个这样的模型:

class A(models.Model):
    b_field = models.ManyToManyField(B)

class B(models.Model):
    available = models.BooleanField()

如何仅将窗口小部件中显示的B对象限制为available = True

的人

1 个答案:

答案 0 :(得分:4)

limit_choices_to选项可能对您有帮助,

  

使用ModelForm或admin呈现此字段时,为此字段的可用选项设置限制(默认情况下,可以选择查询集中的所有对象)。可以使用字典,Q对象或返回字典或Q对象的可调用对象。

例如,

class A(models.Model):
    b_field = models.ManyToManyField(B, limit_choices_to={'available': True})