fix-#744: Querying by a field defined in a subclass raises InvalidQueryError

This commit is contained in:
DavidBord
2014-09-18 10:35:35 +03:00
parent 28d62009a7
commit c5f23ad93d
3 changed files with 31 additions and 0 deletions

View File

@@ -884,6 +884,19 @@ class BaseDocument(object):
elif cls._dynamic:
DynamicField = _import_class('DynamicField')
field = DynamicField(db_field=field_name)
elif cls._meta.get("allow_inheritance", False) or cls._meta.get("abstract", False):
# 744: in case the field is defined in a subclass
field = None
for subcls in cls.__subclasses__():
try:
field = subcls._lookup_field([field_name])[0]
except LookUpError:
continue
if field is not None:
break
else:
raise LookUpError('Cannot resolve field "%s"' % field_name)
else:
raise LookUpError('Cannot resolve field "%s"'
% field_name)