Python Django DjangoRestFramework将项追加到列表字段
我在将Python Django DjangoRestFramework将项追加到列表字段,python,arrays,django,string,django-rest-framework,Python,Arrays,Django,String,Django Rest Framework,我在将CharField项添加到ListField时遇到了这个问题:结果列表被拆分为单个字符,而不是一个字符串。文件: #serializers.py 类TodoSerializer(serializers.ModelSerializer): key=serializers.IntegerField(source='id') levels=serializers.ListField(source='level')#(a) 类元: 模型=待办事项 字段=['key'、'title'、'desc'、
CharField
项添加到ListField
时遇到了这个问题:结果列表被拆分为单个字符,而不是一个字符串。文件:
#serializers.py
类TodoSerializer(serializers.ModelSerializer):
key=serializers.IntegerField(source='id')
levels=serializers.ListField(source='level')#(a)
类元:
模型=待办事项
字段=['key'、'title'、'desc'、'level'、'levels'、'created']
(a) :
#models.py
level=models.CharField(u('level'),最大长度=20)
我希望列表字段
的行为是,假设级别为正常
,我希望列表字段显示为[“正常”]
。但是,它以单个字符的形式出现,如下图所示:
在一句话中,我想将level
附加到levels
中,但格式不令人满意
有人能帮忙吗?提前感谢。实现这一点的一种方法是使用自定义字段。像这样的,
class LevelsField(serializers.Field):
def to_representation(self, value):
return [value.level]
def to_internal_value(self, data):
# here you need to implement your transform logic
return ','.join(data)
levels = LevelsField(source='*')
然后你就这样用,
class LevelsField(serializers.Field):
def to_representation(self, value):
return [value.level]
def to_internal_value(self, data):
# here you need to implement your transform logic
return ','.join(data)
levels = LevelsField(source='*')
实现这一点的一种方法是使用自定义字段。像这样的,
class LevelsField(serializers.Field):
def to_representation(self, value):
return [value.level]
def to_internal_value(self, data):
# here you need to implement your transform logic
return ','.join(data)
levels = LevelsField(source='*')
然后你就这样用,
class LevelsField(serializers.Field):
def to_representation(self, value):
return [value.level]
def to_internal_value(self, data):
# here you need to implement your transform logic
return ','.join(data)
levels = LevelsField(source='*')
如果我理解正确,您希望显示为仅具有
级别
值的数组,对吗?将是只读的?不必是只读的,但其他所有内容,是的,SerializerMethodField
?ArakkalAbu同意如果字段是只读的,这是一个很好的解决方案。我没有注意到OP中提到的这一点。@Cabesuo如果我理解正确,您希望显示为仅具有级别
值的数组,是否正确?是否将是只读的?不必是只读的,但是其他一切,是的,SerializerMethodField
?ArakkalAbu同意如果字段是只读的,这是一个很好的解决方案。我没有注意到OP中提到的这一点。@cabesuon