Skip to content

Commit a8d6e59

Browse files
committed
minor tweaks to code quality in _fields_to_dbfields
1 parent 1d4b187 commit a8d6e59

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

mongoengine/queryset/base.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1722,33 +1722,42 @@ def _item_frequencies_exec_js(self, field, normalize=False):
17221722
return frequencies
17231723

17241724
def _fields_to_dbfields(self, fields):
1725-
"""Translate fields paths to its db equivalents"""
1726-
ret = []
1725+
"""Translate fields' paths to their db equivalents."""
17271726
subclasses = []
1728-
document = self._document
1729-
if document._meta['allow_inheritance']:
1727+
if self._document._meta['allow_inheritance']:
17301728
subclasses = [get_document(x)
1731-
for x in document._subclasses][1:]
1729+
for x in self._document._subclasses][1:]
1730+
1731+
db_field_paths = []
17321732
for field in fields:
1733+
field_parts = field.split('.')
17331734
try:
1734-
field = '.'.join(f if isinstance(f, six.string_types) else f.db_field for f in
1735-
document._lookup_field(field.split('.')))
1736-
ret.append(field)
1735+
field = '.'.join(
1736+
f if isinstance(f, six.string_types) else f.db_field
1737+
for f in self._document._lookup_field(field_parts)
1738+
)
1739+
db_field_paths.append(field)
17371740
except LookUpError as err:
17381741
found = False
1742+
1743+
# If a field path wasn't found on the main document, go
1744+
# through its subclasses and see if it exists on any of them.
17391745
for subdoc in subclasses:
17401746
try:
1741-
subfield = '.'.join(f if isinstance(f, six.string_types) else f.db_field for f in
1742-
subdoc._lookup_field(field.split('.')))
1743-
ret.append(subfield)
1747+
subfield = '.'.join(
1748+
f if isinstance(f, six.string_types) else f.db_field
1749+
for f in subdoc._lookup_field(field_parts)
1750+
)
1751+
db_field_paths.append(subfield)
17441752
found = True
17451753
break
17461754
except LookUpError:
17471755
pass
17481756

17491757
if not found:
17501758
raise err
1751-
return ret
1759+
1760+
return db_field_paths
17521761

17531762
def _get_order_by(self, keys):
17541763
"""Given a list of MongoEngine-style sort keys, return a list

0 commit comments

Comments
 (0)