From ad45e3f747c5f6ec6b8a821505d5f291bef5b80c Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 1 Nov 2025 13:13:39 -0700 Subject: [PATCH] Fix: respect fields parameter for created field (#11251) --- src/documents/serialisers.py | 2 +- src/documents/tests/test_api_documents.py | 29 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 25207bdfa6..f04bb70daa 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -1041,7 +1041,7 @@ class DocumentSerializer( request.version if request else settings.REST_FRAMEWORK["DEFAULT_VERSION"], ) - if api_version < 9: + if api_version < 9 and "created" in self.fields: # provide created as a datetime for backwards compatibility from django.utils import timezone diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index 8145e47937..f7f44c9749 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -172,6 +172,35 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): results = response.data["results"] self.assertEqual(len(results[0]), 0) + def test_document_fields_api_version_8_respects_created(self): + Document.objects.create( + title="legacy", + checksum="123", + mime_type="application/pdf", + created=date(2024, 1, 15), + ) + + response = self.client.get( + "/api/documents/?fields=id", + headers={"Accept": "application/json; version=8"}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + results = response.data["results"] + self.assertIn("id", results[0]) + self.assertNotIn("created", results[0]) + + response = self.client.get( + "/api/documents/?fields=id,created", + headers={"Accept": "application/json; version=8"}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + results = response.data["results"] + self.assertIn("id", results[0]) + self.assertIn("created", results[0]) + self.assertRegex(results[0]["created"], r"^2024-01-15T00:00:00.*$") + def test_document_legacy_created_format(self): """ GIVEN: -- 2.47.3