Python / SQLAlchemy - загружать отношение при обновлении внешнего ключа? - PullRequest
5 голосов
/ 08 октября 2011

У меня есть класс:

class Chart(Base):
   __tablename__ = 'chart'
   id = C('chart_id', Integer, primary_key=True)
   element_id = C(Integer, ForeignKey('element.element_id'))
   element = relationship(Element)
   name = C(String)

   def __init__(self, name):
      self.name = name

Использование довольно распространено,

chart = Chart('Some name')
chart.element_id = element_id

Но chart.element равен None после установки element_id.Есть ли способ автоматически загрузить это отношение для нового объекта перед сбросом / фиксацией?

1 Ответ

5 голосов
/ 10 октября 2011

Лучший вариант -

chart = Chart('Some name')
chart.element = element

Назначить прямой объект для корабля отношений. Если вам присвоить element_id, то до тех пор, пока он не очистится, он будет в памяти. Внутренне он будет запускать запрос SELECT * FROM ELEMENT WHERE ELEMENT.id = element_id, но эти данные element_id не сохраняются или будут в памяти.

Поэтому я предлагаю прямое назначение объекта, если вы не хотите сбрасывать.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...