के साथ एक विदेशीकी संदर्भ बनाने के लिए कैसे हाय मैं समझ नहीं पा रहा हूं कि sqlalchemy का उपयोग कर विदेशीकी संदर्भ कैसे बनाया जाए। मैं अपने डेटाबेस में एक नई तालिका ग्राहक बनाया है:sqlalchemy
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)
नहीं मैं इस
u = User(user_name=u'dusual')
session.add(u)
c = Client(user=u, orgname="dummy_org")
session.add(c)
की तरह कुछ करने के लिए कोशिश कर रहा हूँ लेकिन SQLAlchemy वापस कह चिल्लाना:।
(कश्मीर, cls_ नाम)) टाइप एरर: 'उपयोगकर्ता' क्लाइंट
के लिए एक अवैध कीवर्ड तर्क है अब यह ओबी नहीं होना चाहिए उत्सुक है कि उपयोगकर्ता को एक कीवर्ड तर्क के रूप में अनुमति दी जानी चाहिए कि मैं कैसे सुनिश्चित कर सकता हूं कि मेरी तालिका उपयोगकर्ता कीवर्ड तर्क लेने में सक्षम है। - या तो बताए द्वारा
sqlalchemy.orm आयात रिश्ते से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
तो आप दो तरह से User
के उदाहरण और Client
मॉडल संबद्ध कर सकते हैं
:
ठीक है, स्पष्ट रूप से एक रिश्ता काम करता है की घोषणा । लेकिन मैं सोच रहा था कि क्या कोई अंतर्निहित तरीका है जिसमें यह काम करता है क्योंकि ऐसा लगता है कि मैं उस कोड के लिए काम करता हूं जो मैं संदर्भ – dusual
अच्छाई के लिए देख रहा था :) अच्छी तरह से विस्तारित – deeshank