यहाँ मेरी क्वेरी है।
query = dbsession.query(Parent)\
.options(joinedload(Parent.child))\
.first()
मॉडल Child
, Parent.child
संबंध के माध्यम से उपलब्ध है और इसमें 'कॉलम' नामक कॉलम स्थगित है। ऊपर सूचीबद्ध क्वेरी का उपयोग करके उस कॉलम को अनिर्धारित और लोड कैसे करें?
1 उत्तर
के साथ जुड़े हुए लोड के माध्यम से अनिर्धारित विकल्प को श्रृंखलाबद्ध करें
joinedload(Parent.child).undefer('column')
और दस्तावेज़ देखें लोडर पर।
निम्नलिखित मॉडलों को देखते हुए:
In [3]: class A(Base):
...: __tablename__ = 'a'
...: id = Column(Integer, primary_key=True)
...:
In [4]: class B(Base):
...: __tablename__ = 'b'
...: id = Column(Integer, ForeignKey('a.id'), primary_key=True)
...: value = deferred(Column(Integer))
...: a = relationship('A', backref='bs')
...:
अवमानना value
In [21]: print(session.query(A).options(joinedload(A.bs).undefer('value')))
SELECT a.id AS a_id, b_1.value AS b_1_value, b_1.id AS b_1_id
FROM a LEFT OUTER JOIN b AS b_1 ON a.id = b_1.id
के बग़ैर
In [17]: print(session.query(A).options(joinedload(A.bs)))
SELECT a.id AS a_id, b_1.id AS b_1_id
FROM a LEFT OUTER JOIN b AS b_1 ON a.id = b_1.id
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
.options(undefer(Child.column))
(सिर्फ अनुमान लगाते हुए) जोड़ने की कोशिश की है?