mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 09:47:09 +00:00
25 lines
710 B
Python
25 lines
710 B
Python
from django.core.exceptions import ValidationError
|
|
from pydantic import BaseModel
|
|
from pydantic import ValidationError as PydanticValidationError
|
|
|
|
|
|
class Criteria(BaseModel):
|
|
name: str
|
|
slug: str
|
|
max_value: int
|
|
min_value: int
|
|
|
|
|
|
class ContestTaskCriteriesValidator:
|
|
def __call__(self, instance):
|
|
if instance.criterties and not isinstance(instance.criterties, list):
|
|
err = "criteries must be a valid dictionary"
|
|
raise ValidationError(err)
|
|
|
|
try:
|
|
for criteria in instance.criterties:
|
|
Criteria(**criteria)
|
|
except PydanticValidationError:
|
|
err = "invalid criteries data"
|
|
raise ValidationError(err)
|