Tengo una pregunta sobre el SQLAlchemy. ¿Cómo puedo agregar a mi clase asignada el atributo tipo diccionario, que mapea las claves de cadena en valores de cadena y que se almacenarán en la base de datos (en la misma u otra tabla como objeto mapeado original). Quiero que esto agregue soporte para etiquetas arbitrarias de mis objetos.SQLAlchemy - Diccionario de etiquetas
he encontrado el siguiente ejemplo en la documentación SQLAlchemy:
from sqlalchemy.orm.collections import column_mapped_collection, attribute_mapped_collection, mapped_collection
mapper(Item, items_table, properties={
# key by column
'notes': relation(Note, collection_class=column_mapped_collection(notes_table.c.keyword)),
# or named attribute
'notes2': relation(Note, collection_class=attribute_mapped_collection('keyword')),
# or any callable
'notes3': relation(Note, collection_class=mapped_collection(lambda entity: entity.a + entity.b))
})
item = Item()
item.notes['color'] = Note('color', 'blue')
pero quiero que el siguiente comportamiento:
mapper(Item, items_table, properties={
# key by column
'notes': relation(...),
})
item = Item()
item.notes['color'] = 'blue'
Es posible en SQLAlchemy?
Gracias
¿Cómo se puede eliminar 'i', entonces?Obtengo un 'aise AssertionError ("La regla de dependencia intentó anular la columna de la clave principal'% s 'en la instancia'% s '"% (r, mapperutil.state_str (dest))) excepción al intentar 's.delete (i) ' – Sardathrion
Respondiendo a mi propia pregunta:' En mapper (elemento [...], cascade = "all, delete-huérfano"), [...] ' – Sardathrion