Ich habe herausgefunden, dass Sie Sammlungen in Beziehung verwenden können, um den Typ des Rückgabewerts zu ändern, speziell war ich an Wörterbüchern interessiert. Dokumentation gibt ein Beispiel:Wie man Diktat von Listen von der Beziehung in sqlalchemy erhält?
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key=True)
notes = relationship("Note",
collection_class=attribute_mapped_collection('keyword'),
cascade="all, delete-orphan")
class Note(Base):
__tablename__ = 'note'
id = Column(Integer, primary_key=True)
item_id = Column(Integer, ForeignKey('item.id'), nullable=False)
keyword = Column(String)
text = Column(String)
Und es funktioniert. Ich hatte jedoch gehofft, dass es Listenwerte erstellen wird, wenn es mehr als nur einen Schlüssel mit demselben Namen gibt. Es wird jedoch nur der letzte Wert unter dem eindeutigen Schlüsselnamen angezeigt. Hier
ein Beispiel:
| Note table |
|---------------------|------------------|
| id | keyword |
|---------------------|------------------|
| 1 | foo |
|---------------------|------------------|
| 2 | foo |
|---------------------|------------------|
| 3 | bar |
|---------------------|------------------|
| 4 | bar |
|---------------------|------------------|
item.notes
wird in etwa so zurück:
{'foo': <project.models.note.Note at 0x7fc6840fadd2>,
'bar': <project.models.note.Note at 0x7fc6840fadd4>}
Wo ids von foo und bar Objekte sind 2 bzw. 4.
Was ich suche ist, so etwas zu bekommen:
{'foo': [<project.models.note.Note at 0x7fc6840fadd1,
<project.models.note.Note at 0x7fc6840fadd2>],
'bar': [<project.models.note.Note at 0x7fc6840fadd3>,
<project.models.note.Note at 0x7fc6840fadd4>]}
Ist es möglich, dict von Listen von Beziehung in sqlalchemy zu bekommen?
Bitte korrigieren Sie Ihre Vertiefung und geben Ein- und Ausgabe Beispiel –
Editiert: ein Beispiel gegeben und feste Vertiefung –