1

我需要从可变长度列表中获取所有标题包含所有“部分”的书籍。

喜欢(不工作):

title_list = ['tree', 'sun']
books = Books.objects.filter(title__icontains=title_list)

或在 SQL(工作)中:

SELECT * FROM `books` WHERE title LIKE '%tree%' AND title LIKE '%sun%';

我怎样才能做到这一点?

4

1 回答 1

3

这似乎有效:

from django.db.models import Q

title_list = ['tree', 'sun']

Books.objects.filter(reduce(lambda a, b: a & b, [Q(title__icontains=title) for title in title_list]))
于 2012-06-05T20:23:43.040 回答