Tôi đang xây dựng một số truy vấn Django lọc tự động, using this example:Xây dựng Django truy vấn lọc tự động với args và kwargs
kwargs = { 'deleted_datetime__isnull': True }
args = (Q(title__icontains = 'Foo') | Q(title__icontains = 'Bar'))
entries = Entry.objects.filter(*args, **kwargs)
Tôi chỉ không chắc chắn làm thế nào để xây dựng các mục nhập cho args
. Nói rằng tôi có mảng này:
strings = ['Foo', 'Bar']
Làm thế nào để tôi nhận được từ đó đến:
args = (Q(title__icontains = 'Foo') | Q(title__icontains = 'Bar')
Gần nhất tôi có thể nhận được là:
for s in strings:
q_construct = Q(title__icontains = %s) % s
args.append(s)
Nhưng tôi không biết làm thế nào để thiết lập điều kiện |
.
trên một lưu ý phụ, 'reduce' tại là 'functools.reduce' bằng Python 3 https://docs.python.org/3.0/library/ functools.html # functools.reduce – wasabigeek