स्क्लाक्लेमी के साथ, क्या यह पता लगाने का कोई तरीका है कि कोई संबंध आलसी लोड हो जाएगा?
उदाहरण के लिए, आलसी माता-पिता-> बच्चों के संबंध और "अभिभावक" का एक उदाहरण एक्स दिया गया है, मैं जानना चाहता हूं कि क्वेरी को ट्रिगर किए बिना "X.children" पहले ही लोड हो चुका है या नहीं।एसक्यूएलकेमी के साथ अभी तक आलसी संबंध लोड नहीं होने पर कैसे पता लगाना है?
उत्तर
मुझे लगता है कि आप बच्चे के __dict__
विशेषता शब्दकोश को देख सकते हैं ताकि यह जांच सके कि डेटा पहले से ही है या नहीं।
Haes जवाब की तुलना में थोड़ा neater (हालांकि यह प्रभावी रूप से एक ही बात करता है) के रूप में, hasattr (उपयोग करने के लिए) है:
>>> hasattr(X, 'children')
False
अच्छा, धन्यवाद :) – Joril
यह साथ काम नहीं करता वर्तमान sqlalchemy। 'हैट्टर (ओबीजे, फील्ड)' ओबीजे में 'फ़ील्ड के बराबर नहीं है .__ dict__'। –
मैंने स्क्लेक्लेमी 0.8 में परीक्षण किया है और ऑब्जेक्ट अलग होने पर यह काम करता है। हालांकि अगर यह जुड़ा हुआ है तो हैशर का उपयोग करके 'बच्चों' के आलसी भार को ट्रिगर करता है, जो शायद आप नहीं चाहते हैं। इसके बजाए 0.8 में हम निरीक्षण() कॉल का उपयोग कर सकते हैं: res.unloaded में 'res = निरीक्षण (एक्स) ''' बच्चों '- जो काम करता है कि वस्तु संलग्न है या अलग है। – foz
आप सभी उतार संपत्तियों की एक सूची प्राप्त कर सकते हैं (दोनों संबंधों और कॉलम) sqlalchemy.orm.attributes.instance_state(obj).unloaded
से।
देखें: Completing object with its relations and avoiding unnecessary queries in sqlalchemy
एक आसान तरीका inspect()
, जो एक ही परिणाम देता है उपयोग करने के लिए है:
from sqlalchemy import inspect
from sqlalchemy.orm import lazyload
user = session.query(User).options(lazyload(User.articles)).first()
ins = inspect(user)
ins.unloaded # <- set or properties that are not yet loaded
- 1. पता लगाना है जब एक GWT मॉड्यूल लोड होने के
- 2. आईफ्रेम सामग्री लोड होने पर पता लगाना (क्रॉस ब्राउज़र)
- 3. ओरेकल: लेनदेन लंबित होने पर कैसे पता लगाना है?
- 4. कोई फ़ाइल लिंक होने पर कैसे पता लगाना है?
- 5. लिनक्स में प्रक्रिया समाप्त होने पर कैसे पता लगाना है?
- 6. UICollectionView: स्क्रॉलिंग बंद होने पर कैसे पता लगाना है
- 7. डब्ल्यूसीएफ: सत्र समाप्त होने पर कैसे पता लगाना है?
- 8. Meteor.js के साथ पर्यावरण का पता लगाना?
- 9. फ़िल्टरिंग के साथ आलसी लोड आइटम
- 10. मॉड्यूल अभी तक संदर्भ के लिए लोड नहीं किया गया
- 11. यह आलसी क्यों नहीं है
- 12. स्कैला :: आलसी मूल्य मुद्रित होने तक शून्य है?
- 13. पता लगाना कि टीसीपी पर एक संदेश
- 14. प्राइमफेस ओवरलेपैनेल के साथ लेटेंसी समस्या - आलसी लोड
- 15. जावा: पता लगाना * क्यों * एक वर्ग लोड किया गया है
- 16. प्रदर्शित होने पर modalPanel आलसी प्रतिपादन
- 17. गिट रिबेस पर संघर्ष का पता लगाना
- 18. डिस्प्ले आकार के आधार पर कौन सा लेआउट लोड किया गया है यह पता लगाना?
- 19. नई सुविधाओं का पता लगाना
- 20. यह पता लगाना कि कोई HttpModule लोड किया गया है
- 21. आईओएस: ऐप इंस्टॉल होने पर अधिसूचना (लेकिन अभी तक नहीं चलती है)
- 22. jquery अभी तक बनाए गए तत्वों पर मान्य नहीं है
- 23. एक्स्टजेस में सभी स्टोर लोड होने तक प्रतीक्षा कैसे करें?
- 24. कुंजी संयोजनों का पता लगाना
- 25. फाइल अपलोड होने पर PHP के साथ पता लगाएं, या
- 26. एक प्रश्न के साथ SQL सर्वर उपयोग का पता लगाना
- 27. आईफोन माइक्रोफोन पर उड़ने का पता लगाना?
- 28. एसक्यूएलकेमी
- 29. क्या सेट हो जाने पर एसक्यूएलकेमी उत्सुक/लोड हो सकता है दबाया जा सकता है?
- 30. jQuery - सभी रूपों (यहां तक कि लोगों को अभी तक लोड नहीं)
यह काम करता है, धन्यवाद :) – Joril