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

DRF测试创建带多对多关联的Project对象提示字段必填错误如何解决?

问题原因

  • DRF 序列化器中显式声明的字段,不会自动继承 Django 模型字段的 blank=True 属性,默认会将字段设置为必填项。
  • 模型里的 blank=True 仅作用于 Django 原生表单校验(比如 Admin 后台的表单逻辑),不会作用于 DRF 序列化器的校验逻辑,所以 API 调用时会触发必填校验错误。

解决方法

修改 ProjectWriteSerializer 中 assigned_to 字段的配置,手动添加 required=False 参数,允许该字段不传即可:

class ProjectWriteSerializer(serializers.ModelSerializer):
    """
    用于Project模型的创建、更新操作的序列化器
    """

    # 接收用户ID列表,用于给项目分配关联用户
    assigned_to = serializers.PrimaryKeyRelatedField(
        queryset=User.objects.all(), 
        many=True,
        required=False, # 新增该配置,允许字段不传
        allow_empty=True # 可选配置,允许传空用户列表
    )

    class Meta:
        model = Project
        fields = ('id', 'name', 'slug', 'assigned_to')

修改后发起 API 请求,不传 assigned_to 字段也可以正常通过校验,完成项目创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:06:06