Michael Bayer wrote:
Simon King wrote:
[requirements for instances returned from
MapperExtension.create_instance]
at this point the entity_name should get set after your
custom create_instance is called (at least thats in the
trunk). init_attr is not required, it pre-sets attributes on
Micheal Bayer wrote:
id rather just add another plugin point on MapperExtension
for this, which takes place before the polymorphic decision
stage at the top of the _instance method, like
get_polymorphic_identity(). that way you could do all of
this stuff cleanly in an extension (and id do
at this point the entity_name should get set after your custom
create_instance is called (at least thats in the trunk). init_attr
is not required, it pre-sets attributes on the object that are
otherwise auto-created later (but the autocreation step throws a
single AttributeError per
Michael Bayer wrote:
i think using the polymorphic_map is OK. i downplayed its
existence since I felt it was confusing to people, which is
also the reason i made the _polymorphic_map argument to
mapper private; it was originally public. but it seemed
like it was producing two ways of
King Simon-NFHD78 wrote:
class EmployeeMapperExtension(sa.MapperExtension):
def create_instance(self, mapper, selectcontext, row, class_):
cls = get_employee_class(row[employee_table.c.kind])
if class_ != cls:
return