Я пытаюсь запросить базу данных и исключить некоторые строки, содержащие некоторые из некоторых укусов.Продвинутый запрос ORM Django с operator.or_ не выполняется Нет Значения
Моя упрощенная модель выглядит следующим образом:
class Message(models.model)
text = models.TextField(blank=True, null=True)
Мой запрос выглядит следующим образом:
import operator
ignored_patterns = ['<ignore>', ]
messages = Message.objects.exclude(
reduce(operator.or_, (Q(text__contains=pattern) for pattern
in ignored_patterns))
)
У меня есть проблема в том, что как-то сообщения, которые имеют self.text = None
исключены тоже.
Я благодарен за каждый намек.
Спасибо @danihp, я просто попробовал, и это сработало, как и ожидалось. Также спасибо за подсказку, не использующую 'null = True'. Я окончательно буду помнить об этом. Всегда рады узнать новые шаблоны python/django. –