On Dec 1, 2010, at 5:40 AM, slothy wrote:
Hi!
I'm creating a structure of elements dynamically with declarative,
and I'm not sure if I can modify the mapper to get the new elements
related with a FK. Sorry about my english, is very poor.
This is my function class factory:
def nuevaEtiqueta(self, nombre_etiqueta):
etiqueta = nombre_etiqueta.lower().strip()
nombre_etiqueta = etiquetas_ + etiqueta
dicc = {'__tablename__':nombre_etiqueta,'__table_args__ ':
{'autoload':True}}
id = Column(Integer,primary_key=True);dicc.update({'id':id})
tipo = Column(Text);dicc.update({'tipo':tipo})
contenido_texto =
Column(Text);dicc.update({'contenido_texto':contenido_texto})
contenido_binario =
Column(LargeBinary);dicc.update({'contenido_binario':contenido_binario})
fichero = Column(Text);dicc.update({'fichero':fichero})
ref_elemento = Column(Integer,ForeignKey('elementos_'+etiqueta
+'.id'));dicc.update({'ref_elemento':ref_elemento})
def __init__(self, diccio):
self.tipo = diccio[tipo]
if self.tipo == BIN:
self.contenido_binario = diccio[contenido_binario]
self.fichero = diccio[fichero]
else:
self.contenido_texto = diccio[contenido_texto]
dicc.update({'__init__':__init__})
def __repr__(self):
aux = ETIQUETA
if self.tipo == 'BIN':
return aux + BINARIA
else:
return aux + %s - CONTENIDO: %s %
(self.tipo,self.contenido_texto)
dicc.update({'__repr__':__repr__})
clase_etiqueta = type(str(nombre_etiqueta),(Base,),dicc)
self.etiquetas_map.update({nombre_etiqueta:clase_etiqueta})
Now, when a new class is created, I want the mapper adds the FK
I'm trying to do this with session mappers but with no success.
you can add a Foreign key to a Table using:
table.append_constraint(ForeignKeyConstraint(('local_col', ),
('remote_table.remote_col', ))
you'd build functionality which does this at the same time as creating mappers.
Can you help?
Thanks
--
You received this message because you are subscribed to the Google Groups
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.
--
You received this message because you are subscribed to the Google Groups
sqlalchemy group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.