Le jeudi 17 décembre 2009 à 11:05 -0500, Michael Bayer a écrit :
> Chris Withers wrote:
> >
> > How should I create a class like this? This isn't about table
> > inheritance or the like and I'm *sure* I was told an easy solution for
> > this specific use case before, but I can't find it for the life of me
> > now...
>
>
> Just gave a current status on this feature three days ago:
>
> http://groups.google.com/group/sqlalchemy/browse_thread/thread/99812e0ca1f8cc7c#
Another, not pretty, solution would be to use `exec` with a predefined
string containing the declarations...
Yet another solution is something like:
class CommonColumns(object):
# Add here your column definitions
@classmethod
def update_locals(cls, locals):
locals.update((k, v) for (k, v) in cls.__dict__.items()
if not k.startswith('_'))
class X(Base):
# Add here the custom columns
# Inject the common columns
CommonColumns.update_locals(locals())
Or even:
class CommonColumns(object):
# Add here your column definitions
@classmethod
def update_locals(cls):
locals = sys._getframe(1).f_locals
locals.update((k, v) for (k, v) in cls.__dict__.items()
if not k.startswith('_'))
class X(Base):
# Add here the custom columns
# Inject the common columns
CommonColumns.update_locals()
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.