diff --git a/fernet_fields/fields.py b/fernet_fields/fields.py index 43569dd..1a7b43c 100644 --- a/fernet_fields/fields.py +++ b/fernet_fields/fields.py @@ -2,7 +2,7 @@ from django.conf import settings from django.core.exceptions import FieldError, ImproperlyConfigured from django.db import models -from django.utils.encoding import force_bytes, force_text +from django.utils.encoding import force_bytes, force_str from django.utils.functional import cached_property from . import hkdf @@ -74,7 +74,9 @@ def get_db_prep_save(self, value, connection): def from_db_value(self, value, expression, connection, *args): if value is not None: value = bytes(value) - return self.to_python(force_text(self.fernet.decrypt(value))) + if value == b'': + return '' + return self.to_python(force_str(self.fernet.decrypt(value))) @cached_property def validators(self): diff --git a/fernet_fields/test/settings/base.py b/fernet_fields/test/settings/base.py index bddf12a..fcc09ec 100644 --- a/fernet_fields/test/settings/base.py +++ b/fernet_fields/test/settings/base.py @@ -5,3 +5,5 @@ SECRET_KEY = 'secret' SILENCED_SYSTEM_CHECKS = ['1_7.W001'] + +USE_TZ = False \ No newline at end of file diff --git a/fernet_fields/test/test_fields.py b/fernet_fields/test/test_fields.py index bd8e5b8..9c6922d 100644 --- a/fernet_fields/test/test_fields.py +++ b/fernet_fields/test/test_fields.py @@ -3,7 +3,7 @@ from django.core.exceptions import FieldError, ImproperlyConfigured from django.db import connection, models as dj_models -from django.utils.encoding import force_bytes, force_text +from django.utils.encoding import force_bytes, force_str import pytest import fernet_fields as fields @@ -79,7 +79,7 @@ def test_insert(self, db, model, vals): with connection.cursor() as cur: cur.execute('SELECT value FROM %s' % model._meta.db_table) data = [ - force_text(field.fernet.decrypt(force_bytes(r[0]))) + force_str(field.fernet.decrypt(force_bytes(r[0]))) for r in cur.fetchall() ]