Then I'm not understanding the question, or at least why make_transient is
not working for you.  make_transient just sets the state of the existing
object to be a new row, essentially.  No new self is created (unless I am
seriously forgetting how it works, don't have the code in front of me)
which seems like what you are asking for.

On Sat, Jun 23, 2018, 6:03 AM Dave von Umlaut <zedrd...@gmail.com> wrote:

> 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 <jona...@findmeon.com>
>> 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 sqlalchemy+...@googlegroups.com.
>>> To post to this group, send email to sqlal...@googlegroups.com.
>>> 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 sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> 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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to