'test', '123'
conditions = (Q(name__icontains=x) | Q(description__icontains=x) for x in queries)
qs = qs.filter(reduce(operator.or_, conditions)).distinct()
Как оставить в qs те объекты, чьи id совпадают с вхождениями queries, способными преобразоваться в тип int?
Q(id=int(i))
def str_to_int(el): try: return int(el) except: return None queries = 'test', '123' conditions = (Q(name__icontains=x) | Q(description__icontains=x | Q(id=str_to_int(x) ) for x in queries) qs = qs.filter(reduce(operator.or_, conditions)).distinct() Повезло, что id - уникальное поле. Всем спасибо)
Обсуждают сегодня