我有兩個關係到同一個表。當我將一個元素添加到一個關係中時,這不會反映到其他關係,直到我提交會話。有沒有辦法強制「更新」關係?更新SQLAlchemy關係
具體的例子:
class Event(ManagerBase):
"""Defines an event."""
__tablename__ = 'eventing_events'
id = Column(Integer, primary_key=True)
device_id = Column(Integer, ForeignKey(EventingDevice.id), nullable=False)
device = relation(EventingDevice)
type_id = Column(Integer, ForeignKey(EventType.id), nullable=False)
type = relation(EventType)
datetime = Column(DateTime, nullable=False)
summary = Column(String(500))
fields = relation("EventFieldValue",
viewonly=True,
collection_class=attribute_mapped_collection("field.name"))
class EventFieldValue(ManagerBase):
"""The value of a single field of an event."""
__tablename__ = 'eventing_event_field_values'
event_id = Column(Integer, ForeignKey(Event.id), primary_key=True)
event = relation(Event, backref=backref("field_values",
collection_class=attribute_mapped_collection("field")))
field_id = Column(Integer, ForeignKey(Field.id), primary_key=True)
field = relation(Field)
value = Column(Text)
我有兩個realations從Event
到EventFieldValue
:fields
和field_values
(通過事件的backref)。當我添加一個EventFieldValue到event.field_values
時,它不反映在event.fields
中,直到我提交會話。
你有沒有試過'flush()'你的會話? –