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

问题描述 投票:0回答:1

嗨,我的客户端api将向我发送char数组,例如=>

["user1","user2","user3",...]

我的模型字段是CharField like =>

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

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

我如何以其他方式处理此数组?

mysql django-rest-framework django-serializer
1个回答
0
投票

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

  1. 更改您的emplist字段成为_emplist
_emplist = models.CharField(max_length=1000, null=False, blank=False)
  1. property的模型添加emplist方法>
  2. @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. 现在在序列化器中,只需将ListSerializer字段添加到您的emplist字段中>
    emplist = serializers.ListSerializer(child=serializers.CharField(allow_blank=False, allow_null=False))
    
  2. 现在,在这种情况下它将可以完美地工作。

© www.soinside.com 2019 - 2024. All rights reserved.