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)
我想将此数组输入转换为序列化程序中的字符串,并将字符串输出转换为序列化程序中的数组。我可以这样做吗?
如何用其他方式处理这个数组?
您绝对可以对模型进行一些调整。
- 将您的
emplist
字段更改为 _emplist
_emplist = models.CharField(max_length=1000, null=False, blank=False)
- 为
emplist
的模型添加 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
- 现在在你的 Serializer 中添加
ListSerializer
字段给你 emplist
字段
emplist = serializers.ListSerializer(child=serializers.CharField(allow_blank=False, allow_null=False))
现在它将完美适用于这种情况。
嗨,我的客户 api 会向我发送像 =>
这样的字符数组["user1","user2","user3",...]
我的模型字段是CharField like=>
emplist = models.CharField(max_length=1000,null=False,blank=False)
我想将此数组输入转换为序列化程序中的字符串,并将字符串输出转换为序列化程序中的数组。我可以这样做吗?
如何用其他方式处理这个数组?
您绝对可以对模型进行一些调整。
- 将您的
emplist
字段更改为_emplist
_emplist = models.CharField(max_length=1000, null=False, blank=False)
- 为
emplist
的模型添加
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
- 现在在你的 Serializer 中添加
ListSerializer
字段给你emplist
字段
emplist = serializers.ListSerializer(child=serializers.CharField(allow_blank=False, allow_null=False))
现在它将完美适用于这种情况。