Фильтрация по длине подстроки имени django queryset?
Я пытаюсь найти эффективный способ фильтрации на основе диапазона длины поля полного имени в моей модели. Например, в модели полное имя разделено как "John-Doe". Джон - это имя, а Доу - фамилия. Моя цель - найти все объекты в модели, чье first_name больше 2, но меньше 5. Один из подходов, о котором я подумал, заключается в добавлении двух дополнительных полей в модели под названием first_name и last_name и выполнении команды управления для извлечения first_name и last_name и сохранения их в этих полях. Это унаследованная база данных. В ней около 1 миллиона записей.
number_of_character_filter |= Q(first_name__length__gte=start, first_name__length__lte=end)
Есть ли другой эффективный подход, который я могу использовать для решения этой проблемы?