1
我想使用django ORM執行OR查詢。我提到了this答案,它符合我的需要。django - 使用lambda的OR查詢
我有一個動態生成的整數列表。這些整數代表特定表中的用戶標識。這個表格還有一個日期字段。我想查詢數據庫中給定日期的列表中的所有用戶ID。
例如:從下表,我想爲用戶ID 2和3的記錄,2015年2月28日
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
我無法找出哪些以下兩個應該是完美的日期我的使用情況:
Table.objects.filter(reduce(lambda x, y: (x | y) & Q(date=datetime.date(2015, 2, 28)), [Q(user_id=i) for i in ids])
OR
Table.objects.filter(reduce(lambda x, y: (x | y), [Q(user_id=i) for i in ids]) & Q(date=datetime.date(2015, 2, 28))
上述兩者現在都產生類似的輸出。如果沒有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)))
謝謝!這比我想象的要容易理解。 – Dharmit 2015-03-02 07:51:05