Иконки не совпадают ни с одним элементом в базе данных
Вот мои данные:
>>> print(MyModel.objects.get(id=1).Fruits) #Fruits is JSONField
>>> print(favorites)
{"Title": ["Fruits"], "Name": ["Banana", "Cherry", "Apple", "Peach"]}
['Apple', 'Banana']
Я определяю запрос следующим образом:
>>> query = reduce(operator.or_, (Q(Fruits__Name__icontains=x) for x in favorites))
>>> print(query)
(OR: ('Fruits__Name__icontains', 'Apple'), ('Fruits__Name__icontains', 'Banana'))
Когда я выполняю этот запрос:
MyModel.objects.filter(query_field)
не совпадает ни с одним элементом в базе данных.
В случае MyModel.Fruits
в качестве JSONField
, в зависимости от используемой базы данных, он может храниться/доступаться как строка. Вы можете попробовать просто обратиться к icontains
непосредственно к строковому значению JSON:
Fruits__icontains=x
Поэтому полный запрос будет выглядеть так:
query = reduce(operator.or_, (Q(Fruits__icontains=x) for x in favorites))