class User(Base):
    from sqlalchemy.dialects.postgresql import INET
    __tablename__ = 'users'
    id = Column(Integer,Sequence('user_id_seq'), primary_key=True)
    first_name = Column(Unicode(255),nullable=False)
    last_name = Column(Unicode(255),nullable=False)
    created_at = Column(DateTime,nullable=False,default=datetime.utcnow)
    updated_at = Column(DateTime)
    email = Column(String(255),nullable=False)
    password= Column(String(60))

    auth_providers=relationship("Oauth2User", backref="user")

    def __init__(self,**kw):
        for key in kw:
    self.__setattr__(key,kw[key])


class Oauth2User(User):
    __tablename__ = 'oauth2_user_info'
    id = Column(Integer,Sequence('oauth2_user_id_seq'), primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    uid = Column(Integer)
    provider_id=Column(Unicode)
    first_name = Column(Unicode(255),nullable=False)
    last_name = Column(Unicode(255),nullable=False)
    created_at = Column(DateTime,nullable=False,default=datetime.utcnow)
    updated_at = Column(DateTime)

There are two classes where Oauth2User inherits User, and both of them have 
its own table.
If user info is returned by oauth provider and an instance of Oauth2User 
will becreated, with all attributes setup probably. 
How do I save that user into both tables users and oauth2_user_info?

I have read the 
docs<http://docs.sqlalchemy.org/en/rel_0_9/orm/inheritance.html#joined-table-inheritance>
 about 
joined table inheritance, but it doesn't say anything about saving and I am 
not that familiar with inheritance config. 

Is it possible to save the data in one go, for example.
DBsession.add(someuser) # it saves into two tables automatically

or Do i have to do:
DBsession.add(oauth_user_instance)
DBsession.add(user_instance)

Thanks.



-- 
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/groups/opt_out.

Reply via email to