- Notifications
You must be signed in to change notification settings - Fork 150
Open
Labels
Description
Sometimes there is need to retrieve some server updated fields in the in-memory instance:
user = await User.create() print(user.updated_at) # updated_at_1 await user.update(balance=User.balance + 100).apply() print(user.updated_at) # updated_at_2, and it should not be equal to updated_at_1Unfortunately, gino only retrieves updated fields like
# in `crud.py` clause = ( type(self._instance) .update.where( self._locator, ) .values( **self._instance._get_sa_values(values), ) .returning( *[getattr(cls, key) for key in values], # <- only updated values will return ) .execution_options(**opts) )I'd like to specify some "extra fields" here, maybe in this form:
user = await User.create() print(user.updated_at) # updated_at_1 await user.update(balance=User.balance + 100).apply(extra_returning_fields=['updated_at']) print(user.updated_at) # expected: updated_at_2 > updated_at_1