Merge pull request #1025 from MRigal/feature/259-improve-error-detection-for-invalid-query

Improve error message for invalid query
This commit is contained in:
Matthieu Rigal
2015-06-12 09:13:18 +02:00
3 changed files with 17 additions and 3 deletions

View File

@@ -983,8 +983,13 @@ class BaseDocument(object):
if hasattr(getattr(field, 'field', None), 'lookup_member'):
new_field = field.field.lookup_member(field_name)
else:
# Look up subfield on the previous field
new_field = field.lookup_member(field_name)
# Look up subfield on the previous field or raise
try:
new_field = field.lookup_member(field_name)
except AttributeError:
raise LookUpError('Cannot resolve subfield or operator {} '
'on the field {}'.format(
field_name, field.name))
if not new_field and isinstance(field, ComplexBaseField):
if hasattr(field.field, 'document_type') and cls._dynamic \
and field.field.document_type._dynamic:

View File

@@ -44,7 +44,7 @@ def query(_doc_cls=None, _field_operation=False, **query):
if len(parts) > 1 and parts[-1] in MATCH_OPERATORS:
op = parts.pop()
#if user escape field name by __
# if user escape field name by __
if len(parts) > 1 and parts[-1] == "":
parts.pop()