Moves where the validation happens
This commit is contained in:
parent
aa0bc50e2d
commit
8b37059af8
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user