Аннотация 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 к строке, но не могу найти, как это сделать через аннотацию.

Вернуться на верх