python - 如何进行这样复杂的查找?

标签 python django lookup django-queryset

好吧,也许它并不复杂,但我被困在这个问题上。我有这个模型架构:

Evento(models.Model):
    aprobado = models.BooleanField()
    mod = models.ForeignKey(model=Mod, null=True)
    [...]

Mod(models.Model):
    activo = models.BooleanField()
    [...]

我想检索具有 aprobado == Truemod == None 或(如果 mod != None)mod.activo = 的对象= 假

最佳答案

使用"Q" object和按位 OR 运算符(为 Q 对象重载以表示 SQL OR)。

from django.db.models import Q

queryset = Evento.objects.filter(Q(mod__isnull=True, aprobado=True) | Q(mod__isnull=False, mod__activo=False))

关于python - 如何进行这样复杂的查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398055/

相关文章:

python - 将一些 DataFrame 列重新索引为多索引

django - 如何对两个单独的字段使用相同的 django_filters.CharFilter 字段

java - JMS - 查找问题

arrays - 构建一个 "sparse"查找数组,最小化内存占用

PHP 相当于 Excel 数组上的 vlookup

python - 将 nan 值替换为分类变量中用户定义的值

python - 在 Ansible 剧本中激活 Conda 环境

python - 使用 python-docx 获取 MS Word 段落的开始(和结束)页

python - Celery 4.1 周期性任务错误

mysql - 如何获取最新记录