fixed wording and bug on contains(), made smart_query use ilike instead of like
This commit is contained in:
+3
-5
@@ -7770,7 +7770,7 @@ def smart_query(fields, text):
|
|||||||
elif op == 'notbelongs': new_query = ~field.belongs(value.split(','))
|
elif op == 'notbelongs': new_query = ~field.belongs(value.split(','))
|
||||||
elif field.type in ('text', 'string', 'json'):
|
elif field.type in ('text', 'string', 'json'):
|
||||||
if op == 'contains': new_query = field.contains(value)
|
if op == 'contains': new_query = field.contains(value)
|
||||||
elif op == 'like': new_query = field.like(value)
|
elif op == 'like': new_query = field.ilike(value)
|
||||||
elif op == 'startswith': new_query = field.startswith(value)
|
elif op == 'startswith': new_query = field.startswith(value)
|
||||||
elif op == 'endswith': new_query = field.endswith(value)
|
elif op == 'endswith': new_query = field.endswith(value)
|
||||||
else: raise RuntimeError("Invalid operation")
|
else: raise RuntimeError("Invalid operation")
|
||||||
@@ -9860,14 +9860,12 @@ class Expression(object):
|
|||||||
|
|
||||||
def contains(self, value, all=False, case_sensitive=False):
|
def contains(self, value, all=False, case_sensitive=False):
|
||||||
"""
|
"""
|
||||||
The case_sensitive parameters is only useful for PostgreSQL
|
|
||||||
For other RDMBs it is ignored and contains is always case insensitive
|
|
||||||
For MongoDB and GAE contains is always case sensitive
|
For MongoDB and GAE contains is always case sensitive
|
||||||
"""
|
"""
|
||||||
db = self.db
|
db = self.db
|
||||||
if isinstance(value, (list, tuple)):
|
if isinstance(value, (list, tuple)):
|
||||||
subqueries = [self.contains(str(v).strip(), case_sensitive=case_sensitive)
|
subqueries = [self.contains(v, case_sensitive=case_sensitive)
|
||||||
for v in value if str(v).strip()]
|
for v in value if v]
|
||||||
if not subqueries:
|
if not subqueries:
|
||||||
return self.contains('')
|
return self.contains('')
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user