sql >> Base de Datos >  >> RDS >> Mysql

¿Pueden los modelos Django usar funciones MySQL?

En lugar de cargar el modelo, puede crear una propiedad en su modelo y, cuando se accede a la propiedad, puede leer la base de datos:

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)

Ahora, después de cargar, puede consultar mything.foobar , y el primer acceso recuperará el descifrado de la base de datos, reservándolo para accesos posteriores.

Esto también tiene la ventaja de que si parte de su código no tiene uso para el descifrado, no sucederá.