Аннотация Django JSONField для преобразования всех значений в строки
Я использую возможности полнотекстового поиска Django и хочу, чтобы он осуществлял поиск по модели Row, в которой есть JSON-поле .data, имеющее значение типа:
[["A1", 87, 987, "blue"], ["B1", null, null, "white"]]
Код для выполнения поиска:
search_vector = SearchVector('data')
search_query = SearchQuery(query)
search_headline_data = SearchHeadline('data', search_query, highlight_all=True)
results = Row.objects.all()
.annotate(search=search_vector)
.annotate(headline_data=search_headline_data)
Когда query="blue", совпадение является строкой и выделяется правильно:
[["A1", 87, 987, "<b>blue</b>"], ["B1", null, null, "white"]]
Но когда запрос="87" и есть совпадение с целым числом, совпадение не выделяется.
[["A1", 87, 987, "blue"], ["B1", null, null, "white"]]
В связи с этим я хочу привести все значения в .data JSONField к строке, но не могу найти, как это сделать через аннотацию.