Mysql Django Rest Framework Serializer中的输入格式和输出格式
嗨,我的客户端api将向我发送字符数组,如=>Mysql Django Rest Framework Serializer中的输入格式和输出格式,mysql,django-rest-framework,django-serializer,Mysql,Django Rest Framework,Django Serializer,嗨,我的客户端api将向我发送字符数组,如=> ["user1","user2","user3",...] 我的模型字段是CharField like=> emplist = models.CharField(max_length=1000,null=False,blank=False) 我想将此数组输入转换为序列化程序中的字符串,并将字符串输出转换为序列化程序中的数组。我可以这样做吗 我如何用其他方法处理这个数组?您可以在您的模型上进行一些调整 将您的emplist字段更改为\u empl
["user1","user2","user3",...]
我的模型字段是CharField like=>
emplist = models.CharField(max_length=1000,null=False,blank=False)
我想将此数组输入转换为序列化程序中的字符串,并将字符串输出转换为序列化程序中的数组。我可以这样做吗
我如何用其他方法处理这个数组?您可以在您的模型上进行一些调整
emplist
字段更改为\u emplist
property
方法添加到emplist的模型中
ListSerializer
字段添加到emplist
字段中现在它将非常适合这种情况。我尝试了这种方法,但它得到了“\u emptlist”:[ErrorDetail(string='this field is required',code='required')]”。_emplist与emplist有什么不同?下划线只是私有字段的约定,我用@property包装它,因此可以将包装的属性与序列化程序挂钩。为了解决这个问题,只需使用
null=True
和blank=True
_emplist = models.CharField(max_length=1000, null=False, blank=False)
@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
emplist = serializers.ListSerializer(child=serializers.CharField(allow_blank=False, allow_null=False))