Django фильтр qs, содержащий имя файла, не работает с подчеркиваниями

Моя цель - отфильтровать, если имя загруженного документа содержит search (простая строка из поля ввода, предоставленная пользователем). Странно, но это работает для длинных подстрок, но не для коротких.

Пример

Мой запрос фильтра следующий:

Tab.objects.filter(document__file__icontains=search)

где Tab в простейшей форме представляет собой класс Model, такой как:

class Tab(models.Model):
    name = models.CharField(max_length=50)

и Document - еще один класс Model, имеющий отношение к Tabs и поле file.

class Document(models.Model):
    tab = models.ForeignKey(Tab, on_delete=models.CASCADE)
    file = models.FileField(upload_to=custom_location)

Странное поведение

Я загрузил файл под названием example_test_123.pdf и если мой search = example_test или test_123.pdf, то это приводит к попаданию, как и ожидалось.

Однако, если search = test фильтр не находит файл.

Известно ли такое поведение или я что-то упускаю? Возможно ли, что встроенное имя file создает какие-то проблемы?

Спасибо.

(Django 3.2.9 и Python 3.6.8)

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