fix-#744: Querying by a field defined in a subclass raises InvalidQueryError
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user