diff --git a/peeringdb_api/backend.py b/peeringdb_api/backend.py new file mode 100644 index 0000000..9b7fcff --- /dev/null +++ b/peeringdb_api/backend.py @@ -0,0 +1,19 @@ +import zoneinfo + +from django.db.models import DateTimeField, Model +from django.utils import timezone +from django_peeringdb import __version__ # noqa +from django_peeringdb.client_adaptor.backend import Backend as OldBackend + +utc = zoneinfo.ZoneInfo('UTC') + + +class Backend(OldBackend): + def clean(self, obj: Model): + for field in obj._meta.get_fields(): + if isinstance(field, DateTimeField): + value = getattr(obj, field.name) + if timezone.is_naive(value): + setattr(obj, field.name, timezone.make_aware(value, utc)) + + super().clean(obj) diff --git a/peeringdb_api/client_adapter.py b/peeringdb_api/client_adapter.py index f22842e..ceb2b79 100644 --- a/peeringdb_api/client_adapter.py +++ b/peeringdb_api/client_adapter.py @@ -1,4 +1,4 @@ -from django_peeringdb.client_adaptor import backend +from peeringdb_api import backend def load_backend(**kwargs):