Alih-alih pada beban model, Anda dapat membuat properti pada model Anda, dan ketika properti diakses, ia dapat membaca database:
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)
Sekarang setelah memuat, Anda dapat merujuk ke mything.foobar
, dan akses pertama akan mengambil dekripsi dari database, menyimpannya untuk akses selanjutnya.
Ini juga memiliki keuntungan bahwa jika beberapa kode Anda tidak digunakan untuk dekripsi, itu tidak akan terjadi.