You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Django Ninja Schema字符串字段设置最大/最小/固定长度规则?

在Django Ninja Schema中设置字符串字段的长度规则

Django Ninja的Schema基于Pydantic模型,你可以通过两种常用方式为字符串字段配置长度约束:

方式一:使用Pydantic的Annotated + StringConstraints(Pydantic v2标准写法)

先导入所需工具,再通过Annotated给字符串类型添加长度约束:

from pydantic import StringConstraints, Annotated
from ninja import Schema

class TestSchema(Schema):
    # 固定长度为6(最小、最大长度都设为6)
    name1: Annotated[str, StringConstraints(min_length=6, max_length=6)]
    # 最大长度为6
    name2: Annotated[str, StringConstraints(max_length=6)]
    # 最小长度为6
    name3: Annotated[str, StringConstraints(min_length=6)]

方式二:使用Django Ninja的Field参数(更贴合框架写法)

通过Field直接指定长度规则,无需额外导入Pydantic的约束类:

from ninja import Schema, Field

class TestSchema(Schema):
    # 固定长度为6
    name1: str = Field(..., min_length=6, max_length=6)
    # 最大长度为6
    name2: str = Field(..., max_length=6)
    # 最小长度为6
    name3: str = Field(..., min_length=6)

说明

  • 两种写法效果完全一致,都会在接口接收请求时自动校验字段长度,不符合规则会返回标准化的错误响应。
  • 你提供的示例中str[length=6]这类写法是无效的,需要替换为上述两种标准实现方式。

内容的提问来源于stack exchange,提问作者Evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:12:03