]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: respect fields parameter for created field (#11251)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Sat, 1 Nov 2025 20:13:39 +0000 (13:13 -0700)
committerGitHub <noreply@github.com>
Sat, 1 Nov 2025 20:13:39 +0000 (13:13 -0700)
src/documents/serialisers.py
src/documents/tests/test_api_documents.py

index 25207bdfa6bb6fb52f8f737da1ce72de8e6ab8b8..f04bb70daa7be4981217f0d9b313148a107c9008 100644 (file)
@@ -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
 
index 8145e47937afe42e71a09f60d35915abdef39dbe..f7f44c9749e30c796cdfa1e9f810bd4a7d5f338e 100644 (file)
@@ -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: