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

问题描述:

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

我有这样一个模型:

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

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

如何限制在widget只有那些谁拥有available = True所示的B对象?

limit_choices_to选项可以帮助你,

在该领域使用的ModelForm或管理员(默认渲染设置的限制,为这一领域的可用选项,在查询集所有对象都可用选择)。可以使用字典,Q对象或返回字典或Q对象的可调用对象。

对于例如,

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