Hello everybody,
Is there a generic way to check if a primary key of an instance has
been set that works even if it has been set indirectly, via a
relation?
For example, I have tables and mappers:
category_translations_table = Table('category_translations', metadata,
Column('category_id', types.Integer,
ForeignKey('categories.id'), primary_key=True),
Column('lang_id', types.String(2), ForeignKey('languages.id'),
primary_key=True),
Column('title', types.Unicode(100), nullable=False),
Column('description', types.Unicode(255), nullable=True),
Column('page_text', types.Text, nullable=True)
)
languages_table = Table('languages', metadata,
Column('id', types.String(2), primary_key=True),
Column('native_name', types.Unicode(30)),
Column('english_name', types.Unicode(30))
)
mapper(CategoryTranslation, category_translations_table, properties={
'category': relation(Category),
'language': relation(Language)
})
Then, I set a primary key indirectly:
translation = CategoryTranslation()
translation.category = session.query(Category).filter(....).one()
translation.language = session.query(Language).filter(....).one()
1. How to check whether the primary key is set? I cannot simply check
if every column of class_mapper(CategoryTranslation).primary_key is
set, because these field are empty until I save save the object.
2. How to retrieve that key? I would like to check if the record
already exists.
Regards,
Adam
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---