class Encrypt:
def __init__(self, key):
self.key = key
async def encrypt(self, value) -> bytes:
row = await connections.get("default").execute_query_dict("SELECT pgp_sym_encrypt($1, $2) AS ans;", [value, self.key])
return row[0]["ans"]
Usage:
await models.ModelWithEncryptedField.create(encrypted=await Encrypt(key).encrypt(value))