]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
limit matching options in serializer
authorshamoon <4887959+shamoon@users.noreply.github.com>
Fri, 21 Mar 2025 04:53:58 +0000 (21:53 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Fri, 21 Mar 2025 04:54:05 +0000 (21:54 -0700)
[ci skip]

src/documents/serialisers.py

index 44a764a4fe33d1d59b19e6edbcab81d80a35d566..5c0a62f3287d610240d2550574447383d14e8499 100644 (file)
@@ -670,6 +670,19 @@ class CustomFieldSerializer(MatchingModelSerializer, serializers.ModelSerializer
             raise serializers.ValidationError(
                 {"error": "extra_data.default_currency must be a 3-character string"},
             )
+        if (
+            "matching_algorithm" in attrs
+            and attrs["matching_algorithm"] != CustomField.MATCH_REGEX
+            and "data_type" in attrs
+            and attrs["data_type"]
+            not in [
+                CustomField.FieldDataType.SELECT,
+                CustomField.FieldDataType.BOOL,
+            ]
+        ):
+            raise serializers.ValidationError(
+                {"error": "Only discrete data types support matching"},
+            )
         return super().validate(attrs)
 
     def to_internal_value(self, data):