मैं 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 मॉडल में जोड़ने के लिए वर्कअराउंड बता सकता है।

0
Sohaib 11 फरवरी 2021, 11:02

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')

उसके बाद, माइग्रेशन चलाएं और आपको जाने के लिए तैयार रहना चाहिए।

1
pe.kne 14 फरवरी 2021, 20:09

करने के लिए आधिकारिक मानक तरीका यह आपके मॉडल के अंदर कक्षा मेटा में इसे परिभाषित करना है; यदि यह आपका उपयोगकर्ता मॉडल है, तो आप अनुमतियांमिक्सिन; जो मुझे लगता है कि आपके मामले में भी लागू होता है यदि आप सब कुछ सही जगह पर रखते हैं। आपने अपने सिस्टम और आप क्या करने की कोशिश कर रहे हैं, इसके बारे में अधिक विवरण प्रदान नहीं किया है, लेकिन मुझे लगता है कि आप यह पता लगाने की कोशिश कर रहे हैं कि उपयोगकर्ता किस एप्लिकेशन संदर्भ में अपनी गतिविधि कर रहा है। उस स्थिति में और यदि आपका सिस्टम काफी बड़े पैमाने पर है, तो आप अपने Django प्रोजेक्ट में उपयोगकर्ता प्रमाणीकरण बैकएंड को एक अलग ऐप फ़ोल्डर के रूप में मानने का भी प्रयास कर सकते हैं। आशा है कि मैं मदद कर सकता हूँ।

0
Pedram Z 20 फरवरी 2021, 16:23