モデルの読み込みの代わりに、モデルにプロパティを作成できます。プロパティにアクセスすると、データベースを読み取ることができます。
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
を参照できます 、および最初のアクセスはデータベースから復号化を取得し、後のアクセスのためにデータベースを保持します。
これには、コードの一部が復号化に使用されない場合、復号化が行われないという利点もあります。