nope, an OauthUser is a combination of a row in both of those tables.

if you wanted to deal with both tables independently you’d use individual 
mappings and relationship() between them.


On Oct 28, 2013, at 2:15 AM, Chung WONG <[email protected]> wrote:

> Just one more question regarding the inheritance config.
> Is it possible to skip the add() part for parent?
> 
> Say there is already records in OauthUser and User, on the next run, only 
> insert new record into OauthUser and don't do anything on  User table.
> 
> 
> Thanks.
> 
> On Monday, October 28, 2013 2:06:59 PM UTC+11, Chung WONG wrote:
> 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 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.

-- 
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