मैं auth_permission मॉडल के साथ काम कर रहा हूँ और इस मॉडल में अतिरिक्त फ़ील्ड जोड़ने के लिए।
class Permission(models.Model):
name = models.CharField(_('name'), max_length=255)
content_type = models.ForeignKey(
ContentType,
models.CASCADE,
verbose_name=_('content type'),
)
codename = models.CharField(_('codename'), max_length=100)
अतिरिक्त क्षेत्र जो मैं जोड़ना चाहता था is
application_id = models.ForeignKey(ApplicationTbl, db_column='application_id', on_delete=models.CASCADE, blank=True, null=False)
क्या कोई इसे auth_permission मॉडल में जोड़ने के लिए वर्कअराउंड बता सकता है।
2 जवाब
इसे अपने models.py
पर रखें:
from django.contrib.auth.models import Permission
# inject application_id atribute to the Django Permission model
if not hasattr(Permission, 'application_id'):
application_id = models.ForeignKey(ApplicationTbl, db_column='application_id', on_delete=models.CASCADE, blank=True, null=False)
application_id.contribute_to_class(Permission, 'application_id')
उसके बाद, माइग्रेशन चलाएं और आपको जाने के लिए तैयार रहना चाहिए।
करने के लिए आधिकारिक मानक तरीका यह आपके मॉडल के अंदर कक्षा मेटा में इसे परिभाषित करना है; यदि यह आपका उपयोगकर्ता मॉडल है, तो आप अनुमतियांमिक्सिन; जो मुझे लगता है कि आपके मामले में भी लागू होता है यदि आप सब कुछ सही जगह पर रखते हैं। आपने अपने सिस्टम और आप क्या करने की कोशिश कर रहे हैं, इसके बारे में अधिक विवरण प्रदान नहीं किया है, लेकिन मुझे लगता है कि आप यह पता लगाने की कोशिश कर रहे हैं कि उपयोगकर्ता किस एप्लिकेशन संदर्भ में अपनी गतिविधि कर रहा है। उस स्थिति में और यदि आपका सिस्टम काफी बड़े पैमाने पर है, तो आप अपने Django प्रोजेक्ट में उपयोगकर्ता प्रमाणीकरण बैकएंड को एक अलग ऐप फ़ोल्डर के रूप में मानने का भी प्रयास कर सकते हैं। आशा है कि मैं मदद कर सकता हूँ।
संबंधित सवाल
नए सवाल
python-3.x
पायथन प्रोग्रामिंग के बारे में प्रश्नों के लिए जो भाषा के संस्करण 3+ के लिए विशिष्ट हैं। सभी पायथन सवालों पर अधिक जेनेरिक [अजगर] टैग का उपयोग करें, और केवल यह जोड़ें यदि आपका प्रश्न संस्करण-विशिष्ट है। पायथन 2 प्रश्नों के लिए [अजगर -2] टैग का उपयोग करें।