Merhaba, sqlalchemy kullanarak nasıl bir yabancı referans yapmak mümkün değil.sqlkchemy ile bir yabancı dil referansı nasıl oluşturulur
class Client(DeclarativeBase):
__tablename__ = 'client'
id = Column(Integer, primary_key=True)
user_id = Column(
Integer,
ForeignKey('user.id', ondelete='CASCADE'),
nullable=False,
index=True,
)
orgname = Column(Unicode, nullable=False)
def __init__(self, **kwargs):
super(Client, self).__init__(**kwargs)
Bu
u = User(user_name=u'dusual')
session.add(u)
c = Client(user=u, orgname="dummy_org")
session.add(c)
gibi bir şey yapmaya çalışıyorum Değil Ama sqlalchemy geri söyleyerek bağırır: Benim veritabanında yeni bir tablo müşteri oluşturduk.
(k, cls_ name)) TypeError: 'kullanıcı', İstemci
için bir geçersiz anahtar kelime argümanıdır.Şimdi bu olmamalı Kullanıcının bir anahtar kelime argümanı olarak izin vermesi gerektiğine inanmakla, masamın kullanıcı anahtar kelime argümanını alabildiğinden nasıl emin olabilirim. - atayarak ya iki şekilde User
örneklerini ve Client
modellerini ilişkilendirebilirsiniz
class Client(DeclarativeBase):
__tablename__ = 'client'
id = Column(Integer, primary_key=True)
user_id = Column(
Integer,
ForeignKey('user.id', ondelete='CASCADE'),
nullable=False,
# no need to add index=True, all FKs have indexes
)
user = relationship('User', backref='clients')
orgname = Column(Unicode, nullable=False)
# no need to add a constructor
Sonra sqlalchemy.orm ithalat ilişkisinden
:
Well: -
Aslında üçüncü bir yol var biz
Client.user
birbackref
yapılandırılmış beri, SQLAlchemy bizimUser
modeline liste benzericlients
niteliğini eklendi . Ama bunun işe yaradığı gizli bir yol olup olmadığını merak ediyordum çünkü referans için baktığım kodun bir kısmı için çalışıyor gibi görünüyor. – dusualnicee :) iyi açıkladı – deeshank