Django REST 框架:如何将 FK 设置为可选



>我正在尝试设置外键字段是可选的。

我已经将"null=True,blank=True"添加到 models.py 文件的"组"字段中,但它也是必需的。

这是我 models.py 代码:

class Record(Timestampable):
  uuid = CharField(max_length=256, primary_key=True, editable=False)
  code = CharField(max_length=32, blank=True)
  name = CharField(max_length=256, blank=True)
  group = ForeignKey('self', null=True, blank=True, related_name='members')

这是我 serializers.py 代码:

class RecordSerializer(ModelSerializer):
  class Meta:
    model = Record
    fields = ('uuid', 'code', 'name', 'group')

默认情况下,即使在 DRF 中的请求中该值为 null,您仍然需要提供该字段。

但是,您可以将字段指定为非必填字段:

class RecordSerializer(ModelSerializer):
    group = serializers.CharField(required=False)
    class Meta:
        model = Record
        fields = ('uuid', 'code', 'name', 'group')

相关文档可在此处获得: Django Rest Framework - 序列化程序字段

最新更新