tabelas de consulta de sqlalchemy

Oi eu tenho uma tabela no formulário 3NF

ftype_table = Table(
    'FTYPE',
    Column('ftypeid', Integer, primary_key=True),
    Column('typename', String(50)),
    base.metadata,
    schema='TEMP')
file_table = Table(
    'FILE',
    base.metadata,
    Column('fileid', Integer, primary_key=True),
    Column('datatypeid', Integer, ForeignKey(ftype_table.c.datatypeid)),
    Column('size', Integer),
    schema='TEMP')                                                                

e mapeadores

class File(object): pass
class FileType(object): pass
mapper(File, file_table, properties={'filetype': relation(FileType)})
mapper(FileType, file_table)

suponha que a tabela Ftype contenha 1: TXT 2: AVI 3: PPT

O que eu gostaria de fazer é o seguinte se eu criar um objeto File como este:

file=File()
file.size=10
file.filetype= FileType('PPT')
Session.save(file)
Session.flush()

é que a tabela File contém fileid: xxx, size: 10,datatypeid: 3

Infelizmente, uma entrada é adicionada à tabela FileType e esse id é propagado para a tabela File.

Existe uma maneira inteligente de fazer o acima com sqlalchemy sem a necessidade de fazer uma consulta na tabela FileType para ver se a entrada existe ou não

obrigado

questionAnswers(3)

yourAnswerToTheQuestion