'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 - уникальное поле. Всем спасибо)
Обсуждают сегодня