@@ -105,17 +105,18 @@ def _save_tracked_fields(self):
105105 tracker = getattr (self , FIELDS_TRACKER_FIELD_NAME )
106106 setattr (self , TRACKED_FIELDS_ATTR_NAME , tracker .changed ())
107107
108- def to_cqrs_dict (self , using = None ):
108+ def to_cqrs_dict (self , using = None , sync = False ):
109109 """CQRS serialization for transport payload.
110110
111111 :param using: The using argument can be used to force the database
112112 to use, defaults to None
113113 :type using: str, optional
114+ :type sync: bool, optional
114115 :return: The serialized instance data.
115116 :rtype: dict
116117 """
117118 if self .CQRS_SERIALIZER :
118- data = self ._class_serialization (using )
119+ data = self ._class_serialization (using , sync = sync )
119120 else :
120121 self ._refresh_f_expr_values (using )
121122 data = self ._common_serialization (using )
@@ -230,13 +231,16 @@ def _common_serialization(self, using):
230231
231232 return data
232233
233- def _class_serialization (self , using ):
234- db = using if using is not None else self ._state .db
235- qs = self .__class__ ._default_manager .using (db ).filter (pk = self .pk )
234+ def _class_serialization (self , using , sync = False ):
235+ if sync :
236+ instance = self
237+ else :
238+ db = using if using is not None else self ._state .db
239+ qs = self .__class__ ._default_manager .using (db ).filter (pk = self .pk )
236240
237- instance = self .relate_cqrs_serialization (qs ).first ()
238- if not instance :
239- raise RuntimeError ("Couldn't serialize CQRS class ({})." .format (self .CQRS_ID ))
241+ instance = self .relate_cqrs_serialization (qs ).first ()
242+ if not instance :
243+ raise RuntimeError ("Couldn't serialize CQRS class ({})." .format (self .CQRS_ID ))
240244
241245 data = self ._cqrs_serializer_cls (instance ).data
242246 data ['cqrs_revision' ] = instance .cqrs_revision
@@ -264,8 +268,8 @@ def _refresh_f_expr_values(self, using):
264268 if value is not None and isinstance (value , CombinedExpression ):
265269 fields_to_refresh .append (f .name )
266270
267- if fields_to_refresh :
268- self .refresh_from_db (fields = fields_to_refresh )
271+ if fields_to_refresh :
272+ self .refresh_from_db (fields = fields_to_refresh )
269273
270274 @property
271275 def _cqrs_serializer_cls (self ):
0 commit comments