Ich schreibe einige Domain-Klasse wie:SQLAlchemy-Klasse haben eine Klassenvariable keine Instanzvariable?
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 = []
ich wählen Sie alle Datensätze mit Code:
klients = ss.query(Klient).all()
for k in klients:
q = ss.query(Dogovor).filter(Dogovor.sals == k.sals, Dogovor.kl_id == k.k_id).all()
if len(q):
k.dogovors.extend(q)
Und ich sehe ein unerwartetes Verhalten:
Jedes Objekt haben eine gleiche Instanz von dogovors wie es möglich ist?
UPD:
Ich versuchte schreiben:
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))
aber ich habe den Fehler AttributeError: 'Klient' object has no attribute 'dogovors'
Sie alles anderes als 'self.dogovors gemacht = list() 'class variables – user1767754
Warum machst du manuell was" orm.relatuonship "ist? –
Beziehung sogar. Verdammt mobile Tastatur und Wurst Finger. –