我编写了一些域类,比如:
class Klient(Base):
__tablename__ = 'klient'
__table_args__ = (
Index('pg_klient_index', 'nums', 'sals', 'k_id'),
)
def __init__(self):
self.dogovors=list()
adrrab = Column(String(200))
c1uid = Column(String(45))
cods = Column(String(10))
d_first = Column(Date)
d_vidan = Column(Date)
docum = Column(String(40))
doljn = Column(String(160))
id = Column(BigInteger, primary_key=True, server_default=text("nextval('klient_id_seq'::regclass)"))
inn = Column(String(15))
izm = Column(Date)
k_id = Column(BigInteger, nullable=False)
.....
vidan = Column(String(300))
xmldat = Column(Date)
xmlnum = Column(String(15))
zak = Column(Numeric(1, 0))
dogovors = []
我选择所有带代码的记录:
^{pr2}$我看到了意想不到的行为:
每一个对象都有一个相同的dogover实例怎么可能?在
升级版:
我试着写:
class Klient(Base):
__tablename__ = 'klient'
__table_args__ = (
Index('pg_klient_index', 'nums', 'sals', 'k_id'),
)
def __init__(self):
self.dogovors=list()
adrrab = Column(String(200))
c1uid = Column(String(45))
但是我有个错误AttributeError: 'Klient' object has no attribute 'dogovors'
Some docs about that 如果SQLAlchemy创建类的实例,它不会执行init方法。如果需要执行某个方法,则需要用
@orm.reconstructor
标记它在一切正常工作之后:
相关问题 更多 >
编程相关推荐