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

时间:2021-07-26 02:37:07

I am trying to limit choices for a field, by checking values of the two columns, 'share_holder' and 'distributor'. If any of them is true, then I want that choice.

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

With below version, I only got choices satisfying both conditions ('share_holder': True AND 'distributor': True).

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

limit_choices_to={'share_holder': True, 'distributor': True}

However, I need choices for ('share_holder': True OR 'distributor': True).

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

1 个解决方案

#1


12  

You can use Q objects to achieve this.

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

from django.db.models import Q


limit_choices_to=Q(share_holder=True) | Q(distributor=True)

Official docs on ForeignKey.limit_choices_to

关于ForeignKey.limit_choices_to的官方文档

#1


12  

You can use Q objects to achieve this.

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

from django.db.models import Q


limit_choices_to=Q(share_holder=True) | Q(distributor=True)

Official docs on ForeignKey.limit_choices_to

关于ForeignKey.limit_choices_to的官方文档