Skip to content

Commit

Permalink
Avoid cascading errors from RowRelationMapper when value is empty (c…
Browse files Browse the repository at this point in the history
…lose #465)
  • Loading branch information
gi0baro committed Aug 20, 2023
1 parent 074a28a commit cf1e6a6
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions emmett/orm/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -860,18 +860,21 @@ def _row_record_query_pks(self, row):

def __define_query_helpers(self):
if not self.primary_keys:
self._query_id = self.table.id != None
self._query_id = self.table.id != None # noqa
self._query_row = self._row_record_query_id
self._order_by_id_asc = self.table.id
self._order_by_id_desc = ~self.table.id
elif len(self.primary_keys) == 1:
self._query_id = self.table[self.primary_keys[0]] != None
self._query_id = self.table[self.primary_keys[0]] != None # noqa
self._query_row = self._row_record_query_pk
self._order_by_id_asc = self.table[self.primary_keys[0]]
self._order_by_id_desc = ~self.table[self.primary_keys[0]]
else:
self._query_id = reduce(
operator.and_, [self.table[key] != None for key in self.primary_keys]
operator.and_, [
self.table[key] != None # noqa
for key in self.primary_keys
]
)
self._query_row = self._row_record_query_pks
self._order_by_id_asc = reduce(
Expand Down Expand Up @@ -1151,7 +1154,9 @@ def __init__(self, db, relation_data):
self.field = relation_data.name

def __set__(self, obj, val):
if val is not None and not isinstance(val, RowReferenceMixin):
if not val:
val = None
elif val and not isinstance(val, RowReferenceMixin):
if isinstance(val, StructuredRow):
val = typed_row_reference_from_record(val, val._model)
else:
Expand Down

0 comments on commit cf1e6a6

Please sign in to comment.