मैं एक Django मॉडल है जो create
विधि ओवरराइड करता है भी कुछ संबंधित वस्तुओं को बचाने के लिए के लिए एक ग्राहक प्रबंधक है:आप Django में एक संबंधित प्रबंधक विधि का नकल कैसे करते हैं?
class CustomManager(models.Manager):
def create(self, amount, user, description):
txn = self.get_query_set().create(user, description)
txn.budget_transactions.create(amount)
return txn
मेरा प्रश्न है: मैं कैसे txn.budget_transactions.create
करने के लिए कॉल नकली एक अपवाद को बढ़ाने के लिए करते हैं?
budget_transactions
txn
ऑब्जेक्ट की विशेषता django.db.models.fields.related.RelatedManager
का एक उदाहरण है। mock.patch
का उपयोग इस कक्षा को नकल करने के लिए काम नहीं करता है क्योंकि इसे गतिशील रूप से घोषित किया जाता है - इसे सीधे आयात नहीं किया जा सकता है।
क्या कोई यह जानता है कि यह कैसे करें?
क्या आप नकली पुस्तकालय का उपयोग कर रहे हैं? क्या आप पैच संदर्भ-प्रबंधक या सजावट का उपयोग करना चाहते हैं? – santiagobasulto
मैक लाइब्रेरी का उपयोग करने में मुझे खुशी है अगर यह इस समस्या को हल कर सकता है। जैसा कि मैंने ऊपर बताया है, परंपरागत तरीके से 'mock.patch' का उपयोग करके संबंधित प्रबंधक वर्गों की गतिशील घोषणा के कारण काम नहीं करता है। – DavidWinterbottom