Hello everyone:

This is my first post in this mailing list/group. My question is
simple: is there some way to tell sqlalchemy which method should be
called to instance models? Now, some background:

I'm working in a project with plugins support. In the project core
I've got a "Job" class model. There's also a model view (I'm using
web.py) which shows information about the jobs.

Plugins can extend the Jobs, inheriting from them. They won't need to
add any new column to the model, just reimplement some base functions
for convenience. So I might have the class CustomJob which inherits
the model  class Job.

Now, these functions reimplemented in the inherited class models might
be called by the jobs view. It would be very convenient if directly
when I get the jobs from the database with sqlalchemy I could directly
get them in "CustomJobA", "CustomJobB" instances, instead of all being
instances from the base clas "Job". There's a field in the base Job
class which tells me which class type it is (basically, it's
path.to.module and then ClassName).

I can define a factory method that given a base job instance, or
something similar, can return an instance of the correct model. The
simplest way to work around this problem is to put that function as a
member function called def instance(self): inside the base Job class,
and then anyone who needs it calls job.instance() to get an instance
of the needed class, but it's a bit troublesome. I'd like it to be
more transparent. The job instance should be given to me directly of
the class type needed.

So the question I mentioned earlier remains: is there some way to tell
sqlalchemy which method should be called to instance models? I've seen
http://www.sqlalchemy.org/docs/reference/ext/declarative.html#inheritance-configuration
and 
http://www.sqlalchemy.org/docs/reference/ext/declarative.html#class-constructor
but there doesn't seem to be a straightforward to do what I need. Also
I saw that someone in this list did something similar, but much more
complicated: 
http://groups.google.com/group/sqlalchemy/browse_thread/thread/9dfa457a7903f684/dd102bcb86dd905b

Any ideas, suggestions?

Regards,
   Eduardo RE

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to