我知道 Django ninja 模式使用 Pydantic 模型,如何设置字符串字段的最大/最小/固定长度规则?
class TestSchema(Schema):
name1: str[length=6]
name2: str[maxlength=6]
name3: str[minlength=6]
使用
constr
代替 str
:
from ninja import Schema
from pydantic import constr
class TestSchema(Schema):
name1: constr(min_length=6, max_length=6)
name2: constr(max_length=6)
name3: constr(min_length=6)
参考奥利维拉的回答。我在 Pydantic 网站 上搜索了 constr。 以下是注释:
不鼓励使用此函数,而是使用带有 StringConstraints 的 Annotated。
此函数将在 Pydantic 3.0 中弃用。
建议方式:
from typing_extensions import Annotated
from pydantic import BaseModel, StringConstraints
class Foo(BaseModel):
bar: Annotated[
str,
StringConstraints(
strip_whitespace=True, to_upper=True, pattern=r'^[A-Z]+$'
),
]
对于我的情况:
name1: Annotated[
str,
StringConstraints(
min_length=6, max_length=6
),
]