Django limit_choices_to用于带有“或”的多个字段健康)状况 [英] Django limit_choices_to for multiple fields with "or" condition

查看:162
本文介绍了Django limit_choices_to用于带有“或”的多个字段健康)状况的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过检查 share_holder和 distributor两列的值来限制字段的选择。如果其中任何一个是正确的,那么我要选择。



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

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

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

解决方案

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



<$ p $来自django.db.models的p> import Q


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

ForeignKey.limit_choices_to


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.

With below version, I only got choices satisfying both conditions ('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).

解决方案

You can use Q objects to achieve this.

from django.db.models import Q


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

Official docs on ForeignKey.limit_choices_to

这篇关于Django limit_choices_to用于带有“或”的多个字段健康)状况的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆