Thats a mixin class that can be added onto any object inheriting from
declared_base. You only need one of the `columns_as_dict` options. I
showed 3 variations: one that gives all columns, one that lets you specify
which columns to include, and another that shows which columns to exclude.
You could adjust the defs to return a new object instead of a dict.
I find this solution to be more flexible than using entirely automatic
properties, because I often have multiple-column primary keys and misc
columns that are defined by the backend and computed by the application
(ie, not editable or used by admins or users).
In your situation you could have a class that does this:
class YourClassA(Base, Duplicable):
_columns_notduplicable = ['primary key', 'other private column',
'another private column']
class YourClassB(Base, Duplicable):
_columns_notduplicable = ['primary key', 'other private column',
'another private column']
a = YourClassA()
as_dict = a.columns_as_dict
a = YourClassB()
as_dict = b.columns_as_dict
I use something similar when I do Revision Tracking of objects in the
database -- I call "columns_as_dict" to get a dict of all the relevant
columns, then serialize that dict to the database with a timestamp.
--
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.