Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Os modelos do Django podem usar funções do MySQL?


Ao invés de no carregamento do modelo, você pode criar uma propriedade no seu modelo, e quando a propriedade for acessada, ela poderá ler o banco de dados:
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)

Agora, após o carregamento, você pode consultar mything.foobar , e o primeiro acesso recuperará a descriptografia do banco de dados, mantendo-a para acessos posteriores.

Isso também tem a vantagem de que, se parte do seu código não tiver uso para a descriptografia, isso não acontecerá.