Django Rest Framework Serializer 中的输入格式和输出格式

Input format and Output format in Django Rest Framework Seriaizer

嗨,我的客户 api 会向我发送像 =>

这样的字符数组
["user1","user2","user3",...]

我的模型字段是CharField like=>

emplist = models.CharField(max_length=1000,null=False,blank=False)

我想将此数组输入转换为序列化程序中的字符串,并将字符串输出转换为序列化程序中的数组。我可以这样做吗?

如何用其他方式处理这个数组?

您绝对可以对模型进行一些调整。

  1. 将您的 emplist 字段更改为 _emplist
_emplist = models.CharField(max_length=1000, null=False, blank=False)
  1. emplist
  2. 的模型添加 property 方法
@property
def emplist(self):
    return self._emplist.split(',')
@emplist.setter
def emplist(self, value):
    if isinstance(value, list):
        self._emplist = ','.join(value)
    elif isinstance(value, str):
        self._emplist = value
  1. 现在在你的 Serializer 中添加 ListSerializer 字段给你 emplist 字段
emplist = serializers.ListSerializer(child=serializers.CharField(allow_blank=False, allow_null=False))

现在它将完美适用于这种情况。