Moves where the validation happens

This commit is contained in:
Trenton Holmes 2023-11-04 12:53:00 -07:00
parent aa0bc50e2d
commit 8b37059af8

View File

@ -2,7 +2,6 @@ import datetime
import math import math
import re import re
import zoneinfo import zoneinfo
from typing import Any
import magic import magic
from celery import states from celery import states
@ -461,13 +460,16 @@ class CustomFieldInstanceSerializer(serializers.ModelSerializer):
def get_value(self, obj: CustomFieldInstance): def get_value(self, obj: CustomFieldInstance):
return obj.value return obj.value
def run_validation(self, data: Any = ...) -> Any: def validate(self, data):
# other fields get validated by db """
field = CustomField.objects.get(pk=data["field"]) For some reason, URLField validation is not run against the value
automatically. Force it to run against the value
"""
data = super().validate(data)
field: CustomField = data["field"]
if field.data_type == CustomField.FieldDataType.URL: if field.data_type == CustomField.FieldDataType.URL:
validator = URLValidator() URLValidator()(data["value"])
URLValidator.__call__(validator, data["value"]) return data
return super().run_validation(data)
class Meta: class Meta:
model = CustomFieldInstance model = CustomFieldInstance