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.

Reply via email to