Ho una domanda riguardante SQLAlchemy. Come posso aggiungere alla mia classe mappata l'attributo simile al dizionario, che mappa le chiavi stringa in valori stringa e che saranno archiviate nel database (nella stessa tabella o in un'altra tabella come oggetto mappato originale). Voglio aggiungere il supporto per tag arbitrari dei miei oggetti.SQLAlchemy - Dizionario di tag
ho trovato il seguente esempio nella documentazione 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')
Ma io voglio il seguente comportamento:
mapper(Item, items_table, properties={
# key by column
'notes': relation(...),
})
item = Item()
item.notes['color'] = 'blue'
E 'possibile in SQLAlchemy?
Grazie
Come si può cancellare 'i' allora?Otterrò un "aise AssertionError" ("La regola delle dipendenze ha cercato di cancellare la colonna della chiave primaria"% s "sull'istanza"% s ""% (r, mapperutil.state_str (dest))) "eccezione quando si prova' s.delete (i) ' – Sardathrion
Rispondendo alla mia domanda:' In mapper (elemento [...], cascade = "all, delete-orphan"), [...] ' – Sardathrion