Я определил таблицу, используя SQLAlchemy и замэпили к классу:SQLAlchemy: как передать дополнительные параметры при создании экземпляра нового объекта
meta = MetaData(engine)
item_table = Table(
'Item', meta,
Column('id', Integer, primary_key=True, nullable=False),
Column('name', String(40), nullable=False)
)
class Item(object):
def init(self, created_by):
self.created_by = created_by
def __repr__(self):
return '<Item %r created by %r>' % (self.name, self.created_by)
mapper(Item, item_table)
Как вы видите, Item
имеет created_by
поле, которое не приходит из базы данных. В настоящее время я выживаю с использованием метода item.init("created_by")
, который вызывается сразу после создания экземпляра элемента. Я нахожу этот уродливый, возможно, есть лучший способ справиться с этим.
Я создаю мои детали 'пункт = session.query (п) .get (item_id)', я не вижу, где Я могу передать дополнительный параметр. – Passiday
ОК. Это не * создание * новых объектов. Это * поиск * постоянных объектов из базы данных. Обновил ответ соответственно. – van
Откуда возникает 'created_by', если он не хранится в базе данных? – Eevee