Фильтрация набора запросов Django по тексту с применением диакритических знаков - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь отфильтровать набор запросов в python по тексту

модель:

models.Offer
       id = pk           
       description = text

Я пытаюсь отфильтровать это как:

someText = self.shave_marks(someText)
offers = offers.filter(description__icontains=someText)

Там, где shave_marks заменяет специальные символы, такие как: ç станет c.

Текст в базе данных (в поле описания) также содержит специальные символы, мне нужно сначала «сбрить» текст описания, а затем выполнить фильтрацию.

Любая помощь, большое спасибо !!!

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Как насчет этого?

offers = [(x, x.description)) for x in offers.objects.all()]

required_offers = []

for key, value in offers:
    if someText in shave_marks(value):
        required_offers.append(key)
0 голосов
/ 27 июня 2018

что вы можете сделать, это создать настраиваемое поле, расширяющее charfield. иметь метод переопределения этого поля get_prep_value

Я не смог найти конкретный пример, но теоретически это должно сработать.

class SpecialField(models.CharField):
    def get_prep_value(self, value):
        return shave_marks(shave_marks)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...