【问题标题】:How to know which boolean field is true in django如何知道 django 中哪个布尔字段为真
【发布时间】:2016-01-01 11:46:24
【问题描述】:

我正在使用 python Django。我的模型中有三个布尔字段。现在我想编写一个脚本,它返回所有具有 TRUE 值的布尔字段。是否有可能知道它是否可以指导我如何做到这一点?

class Job_offer(models.Model):

    min_salary = models.IntegerField(verbose_name="Min Salary (per month)")
    max_salary = models.IntegerField(verbose_name="Max Salary (per month)")

    travel_allowance = models.BooleanField(default=False)
    variable_pay = models.BooleanField(default=False)
    pf_esic = models.BooleanField(default=False, verbose_name="PF/ESIC provided?")

【问题讨论】:

  • 我已经编辑了@ozgur,请检查
  • 请提供整个模型!
  • @ozgur 现在请检查。

标签: python django


【解决方案1】:

如果我对问题的理解正确,您可以使用 Q objects 为任何布尔字段为 True 的对象构建查询。

from django.db.models import Q
Job_offer.objects.filter(
    Q(travel_allowance=True) |
    Q(variable_pay=True) |
    Q(pf_esic=True)
)

【讨论】:

    【解决方案2】:

    我认为您的问题写得不正确,也许您应该解释一下为什么需要这个,以便我们能更多地了解您的问题。

    如果我理解正确,您希望在函数中使用这样的查询。

    def positive_jobs(self):
        return Job_offer.objects.filter(travel_allowance=True, variable_pay=True, pf_esic=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 2013-11-16
      • 2021-10-26
      • 2014-02-11
      • 2022-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多