Работа с Field и её параметрами

Рейтинг: 0Ответов: 0Опубликовано: 05.06.2023

У меня возникла небольшая проблема во время написания моего тестового задания. Даже не проблема, а скорее вопрос. Я валидировала данные при помощи pydantic модели и решила использовать Field и некоторые её параметры и мне стало интересно, а можно ли использовать для одной строки несколько параметров сразу? Если что вот моя модель, в данный момент тест прекрасно отрабатывает, просто стало интересно, думаю это смогло бы упростить задачу валидирования данных и в принципе было бы круто и полезно знать :3

from pydantic import BaseModel, validator, Field


class Data(BaseModel):
    id: int = Field (le=6) 
    name: str = Field (max_length=50)
    year: int = Field (le=2023)
    color: str = Field (max_length=10)
    pantone_value: str = Field (max_length=10)
    
    @validator('color')
    def check_correct_color(cls, color):
        if '#' in color:
            return color
        else:
            raise ValueError('Color dose not found')
        
    @validator('pantone_value')
    def check_correct_pantone(cls, pantone_value):
        if '-' in pantone_value:
            return pantone_value
        else:
            raise ValueError('Pantone dose not found')

class Support(BaseModel):
    url: str
    text: str

class Resource(BaseModel):
    page: int = Field (le=2)
    per_page: int = Field (le=6)
    total: int = Field (le=12)
    total_pages: int = Field (le=2)
    data: list[Data]
    support: Support

И ещё, не могли бы вы подсказать, как провалидировать год так, что бы у него было какое-то ограничени? (Например чтобы год не мог превышать ста лет)

Ответы

Ответов пока нет.