के बजाय आईडी असाइन करें, अगर मेरा प्रश्न मूर्खतापूर्ण साबित हो जाता है, तो मैं क्षमा चाहता हूं, लेकिन मैं Django के लिए नया हूं, और मुझे कहीं भी जवाब नहीं मिला। अबDjango मॉडल - ऑब्जेक्ट
class BlackListEntry(models.Model):
user_banned = models.ForeignKey(auth.models.User,related_name="user_banned")
user_banning = models.ForeignKey(auth.models.User,related_name="user_banning")
, जब मैं इस तरह एक वस्तु बनाने की कोशिश:
मैं निम्नलिखित मॉडल है
BlackListEntry.objects.create(user_banned=int(user_id),user_banning=int(banning_id))
मैं एक निम्न त्रुटि मिलती है:
Cannot assign "1": "BlackListEntry.user_banned" must be a "User" instance.
के
बेशक, अगर मैं इसे इस तरह से बदलता हूं:
user_banned = User.objects.get(pk=user_id)
user_banning = User.objects.get(pk=banning_id)
BlackListEntry.objects.create(user_banned=user_banned,user_banning=user_banning)
सबकुछ ठीक काम करता है। सवाल यह है:
क्या मेरा समाधान डेटाबेस दोनों उपयोगकर्ताओं को पुनर्प्राप्त करने के लिए हिट करता है, और यदि हां, तो क्या इससे बचना संभव है, बस आईडी को पास करना?
यह मुझे देता है: 'user_banning__id' इस फ़ंक्शन के लिए एक अवैध कीवर्ड तर्क है –
मुझे खेद है, मुझे अभी एहसास हुआ कि आप ऑब्जेक्ट बना रहे हैं। तो, आपको एक अंडरस्कोर के साथ उपयोग करने की आवश्यकता है। मैं स्पष्टीकरण के लिए अपना जवाब संपादित करूंगा क्यों। – Francisco
धन्यवाद, अब यह काम करता है। मैं आपको +1 जोड़ूंगा, लेकिन मैं अभी तक ऐसा करने के लिए बहुत n00bly हूँ। –