मॉडल लोड के बजाय, आप अपने मॉडल पर एक संपत्ति बना सकते हैं, और जब संपत्ति का उपयोग किया जाता है, तो यह डेटाबेस पढ़ सकता है:
def _get_foobar(self):
if not hasattr(self, '_foobar'):
cursor = connection.cursor()
self._foobar = cursor.execute('SELECT AES_DECRYPT(fieldname, password) FROM tablename')[0]
return self._foobar
foobar = property(_get_foobar)
अब लोड करने के बाद, आप mything.foobar
. का संदर्भ ले सकते हैं , और पहली पहुंच डेटाबेस से डिक्रिप्शन को पुनः प्राप्त करेगी, बाद में एक्सेस के लिए इसे पकड़ कर रखेगी।
इसका यह भी लाभ है कि यदि आपके कुछ कोड का डिक्रिप्शन के लिए कोई उपयोग नहीं है, तो ऐसा नहीं होगा।