On Tue, Apr 15, 2014 at 1:11 PM, Pavel Aborilov <abori...@gmail.com> wrote:
> but I dont know on the time of query what the type of object it will be. > Then you can use session.query(Person).with_polymorphic('*') to mean joining to the tables of all mapped subclasses. (Be aware that this can become problematic if there is a lot of them.) Cheers, Gulli > > On Tuesday, April 15, 2014 5:06:48 PM UTC+4, Gunnlaugur Briem wrote: > >> Hi Pavel, >> >> You want: s.query(Person).with_polymorphic(Man).get(51) >> >> Cheers, >> >> Gulli >> >> >> On Tue, Apr 15, 2014 at 12:59 PM, Pavel Aborilov <abor...@gmail.com>wrote: >> >>> Hello! >>> How can I cache query like this: >>> session.query(Person).get(51) >>> >>> where 51 is id of Man >>> >>> I can't access attribute age of Man without SELECT. >>> >>> Models: >>> >>> class Person(Base): >>> __tablename__ = 'person' >>> id = Column(Integer, primary_key=True) >>> name = Column(String(100), nullable=False) >>> type = Column(String(50)) >>> __mapper_args__ = { >>> 'polymorphic_identity': 'object', >>> 'polymorphic_on': type >>> } >>> >>> class Man(Person): >>> __tablename__ = 'man' >>> id = Column(Integer, ForeignKey('person.id'), primary_key=True) >>> age = Column(String(100), nullable=False) >>> __mapper_args__ = {'polymorphic_identity': 'man'} >>> >>> -- >>> 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 http://groups.google.com/group/sqlalchemy. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > 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 http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > -- 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 http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.