From 82e28dec43e64e6c7995a3ca4b9eb2f91da675d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20G=C3=A9rard?= Date: Fri, 8 Mar 2019 17:09:39 +0100 Subject: [PATCH] improved string operation code --- mongoengine/fields.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 9650403c..ba508a70 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -13,6 +13,8 @@ import pymongo import six from six import iteritems +from mongoengine.queryset.transform import STRING_OPERATORS + try: import dateutil except ImportError: @@ -106,11 +108,11 @@ class StringField(BaseField): if not isinstance(op, six.string_types): return value - if op.lstrip('i') in ('startswith', 'endswith', 'contains', 'exact'): - flags = 0 - if op.startswith('i'): - flags = re.IGNORECASE - op = op.lstrip('i') + if op in STRING_OPERATORS: + case_insensitive = op.startswith('i') + op = op.lstrip('i') + + flags = re.IGNORECASE if case_insensitive else 0 regex = r'%s' if op == 'startswith':