improved string operation code
This commit is contained in:
		| @@ -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,12 +108,12 @@ 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 | ||||
|         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': | ||||
|                 regex = r'^%s' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user