Django limit_choices_to用于具有"或"条件的多个字段

her*_*mos 9 django limit-choices-to

我试图通过检查两列"share_holder"和"distributor"的值来限制字段的选择.如果它们中的任何一个是真的,那么我想要那个选择.

在下面的版本中,我只有满足两个条件的选择('share_holder':True AND'distributor':True).

limit_choices_to={'share_holder': True, 'distributor': True}
Run Code Online (Sandbox Code Playgroud)

但是,我需要选择('share_holder':True OR''distributor':True).

moo*_*uck 17

您可以使用Q对象来实现此目的.

from django.db.models import Q


limit_choices_to=Q(share_holder=True) | Q(distributor=True)
Run Code Online (Sandbox Code Playgroud)

关于ForeignKey.limit_choices_to的官方文档

  • 非常感谢,工作完美。Q 对象可以用于根据同一对象的其他字段过滤字段。例如,选择第一个字段值(例如“动物”)后,在第二个字段中我只想显示动物列表,而不是所有生物。 (2认同)