I don't mind using merge()… My problem is that using the code linked above, I cannot seem to make it to keep the original `self` (it invariably gets replaced by the new persisted object).
I'm happy with a shallow copy of the object (I handle the relationship separately). My next plan is literally to duplicate the DB row… On Saturday, 23 June 2018 02:35:39 UTC+9, Mike Bayer wrote: > > There's no shortcut outside of merge () for copying attributes, copies are > hard to generalize so you probably want to put copy constructors on your > classes if you need to do that often. > > On Fri, Jun 22, 2018, 1:24 PM Jonathan Vanasco <[email protected] > <javascript:>> wrote: > >> >> FWIW, i use these methods in my base class to copy the object into a >> dict. >> >> >> def columns_as_dict(self): >> """ >> Beware: this function will trigger a load of attributes if they >> have not been loaded yet. >> """ >> return dict((col.name, getattr(self, col.name)) >> for col >> in sqlalchemy.orm.class_mapper(self.__class__). >> mapped_table.c >> ) >> >> >> def loaded_columns_as_dict(self): >> """ >> This function will only return the loaded columns as a dict. >> """ >> _dict = self.__dict__ >> return {col.name: _dict[col.name] >> for col in sqlalchemy.orm.class_mapper(self.__class__). >> mapped_table.c >> if col.name in _dict >> } >> >> >> >> -- >> SQLAlchemy - >> The Python SQL Toolkit and Object Relational Mapper >> >> http://www.sqlalchemy.org/ >> >> To post example code, please provide an MCVE: Minimal, Complete, and >> Verifiable Example. See http://stackoverflow.com/help/mcve for a full >> description. >> --- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/d/optout. >> > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
