2012-07-03 16 views
8

मैं यह करने के कोशिश कर रहा हूँ:आयात RelatedManager django.db.models.fields.related से

from django.db.models.fields.related import RelatedManager 

क्योंकि मैं यदि एक वस्तु एक संबंधित प्रबंधक यानी है परीक्षण करने के लिए सक्षम होना चाहते हैं:

त्रुटि::
isinstance(obj, RelatedManager) 

लेकिन मैं यह त्रुटि मिलती रहती आयात नहीं कर सकते नाम RelatedManager

उत्तर

7

संबंधित प्रबंधक वर्गों django.db.models.fields में जनरेटर कार्यों के अंदर रनटाइम पर बनाया जाता है। इस प्रकार से संबंधित आप उन्हें सीधे आयात नहीं कर सकते हैं। यदि आप यह जांचना चाहते हैं कि कोई ऑब्जेक्ट किसी विशिष्ट संबंध के लिए संबंधित प्रबंधक है या नहीं, तो आप isinstance(obj, MyModel.my_relation.__class__) का उपयोग कर सकते हैं। आप यह निर्धारित करने के लिए hasattr का उपयोग भी कर सकते हैं कि ऑब्जेक्ट में आपके पास आवश्यक गुण हैं (डकटाइपिंग) और पूरी तरह से इंस्टेंसेंस का उपयोग करने से बचें।

+0

isinstance (obj, MyModel.reversename_set.related_manager_cls) – mrvol

संबंधित मुद्दे