相关疑难解决方法(0)

如何在django queryset中执行OR条件?

我想写一个等同于这个SQL查询的Django查询:

SELECT * from user where income >= 5000 or income is NULL.
Run Code Online (Sandbox Code Playgroud)

如何构造Django queryset过滤器?

User.objects.filter(income__gte=5000, income=0)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它AND是过滤器.我想过OR滤器来获得各个查询集的联合.

python sql django django-orm django-queryset

261
推荐指数
5
解决办法
14万
查看次数

Python中的管道字符

|在函数调用中看到一个"管道"字符():

res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
Run Code Online (Sandbox Code Playgroud)

管道的含义是什么ax|bx

python pipe bitwise-operators

64
推荐指数
6
解决办法
4万
查看次数

Django模型查询中的OR运算符

我正在尝试OR在Django filter()函数中使用运算符.现在我有

contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'])
Run Code Online (Sandbox Code Playgroud)

但我也想用名字搜索.例如:

contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'] OR first_name__icontains=request.POST['query'])
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

django django-models django-queryset

38
推荐指数
2
解决办法
3万
查看次数

Django过滤多个值

有人知道为什么这query_set不会为我返回任何值吗?单独使用过滤器,它工作得很好,所以似乎.filter().filter()一起过滤“非此即彼”是错误的方法。

ticket_query = request.event.tickets.filter(status='on-sale').filter(status='paused').prefetch_related('ticket_tax')
Run Code Online (Sandbox Code Playgroud)

python django

6
推荐指数
2
解决办法
2万
查看次数

使用 Extra 和 Filter 进行 Django OR 查询

我正在尝试使用 Django 的 ORM 来使用额外方法和过滤方法生成查询。像这样的东西:

Model.objects.filter(clauseA).extra(clauseB).all()
Run Code Online (Sandbox Code Playgroud)

这会生成一个查询,但问题是过滤子句中的所有内容都与额外子句中的所有内容进行 AND 运算,因此 sql 如下所示:

SELECT * FROM model WHERE clauseA AND clauseB. 
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法更改 Django 中查询的默认组合运算符,以便生成的查询将是:

SELECT * FROM model WHERE clauseA OR clauseB. 
Run Code Online (Sandbox Code Playgroud)

python django orm

5
推荐指数
1
解决办法
2227
查看次数

django - 使用lambda进行OR查询

我想使用django ORM执行OR查询.我提到了这个答案,它符合我的需要.

我有一个动态生成的整数列表.这些整数表示特定表中的用户ID.该表还有一个日期字段.我想查询数据库中列表中给定日期的所有用户ID.

例如:从下表中,我想要2015-02-28日期的用户ID和3的记录

id |    date
---------------
 1 | 2015-02-23
 1 | 2015-02-25
 1 | 2015-02-28
 2 | 2015-02-28
 2 | 2015-03-01
 3 | 2015-02-28
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚以下哪两项对我的用例来说是完美的:

Table.objects.filter(reduce(lambda x, y: (x | y) & Q(date=datetime.date(2015, 2, 28)), [Q(user_id=i) for i in ids])
Run Code Online (Sandbox Code Playgroud)

要么

Table.objects.filter(reduce(lambda x, y: (x | y), [Q(user_id=i) for i in ids]) & Q(date=datetime.date(2015, 2, 28))
Run Code Online (Sandbox Code Playgroud)

以上两者在此刻产生类似的输出.没有lambda,下面的查询符合我的需要:

Table.objects.filter(Q(user_id=3) & Q(date=datetime.date(2015, 2, 28))| Q(user_id=2) & Q(date=datetime.date(2015, 2, 28)))
Run Code Online (Sandbox Code Playgroud)

django django-queryset

1
推荐指数
1
解决办法
455
查看次数

在 django 中使用或条件过滤

我想OR在过滤对象数据时在 Django 中使用带条件的过滤器。

我有一个类的对象,我有 3 或 4 个字段,在此基础上我想OR在 Django 中使用条件过滤数据。

例如。

Obj = Books.objects.filter(title=title or price=price or description=description or author=author)
Run Code Online (Sandbox Code Playgroud)

我认为这不是执行过滤的正确方法。

OR在我的 django 过滤器中使用条件的正确方法是什么

python django

1
推荐指数
1
解决办法
5815
查看次数