在我的一个django项目中,我以这种方式设置了 django-rest-framework ,以便它返回以下类型的json响应:
{
"name": "John",
"last_name": "Smith",
"age": 35,
"dl_url": "[u'http://domain.com/file1', u'http://domain.com/file2']"
}
到目前为止一切顺利。
问题是我需要将dl_url
属性作为列表而不是字符串返回,以便它变为:
{
"name": "John",
"last_name": "Smith",
"age": 35,
"dl_url": [u'http://domain.com/file1', u'http://domain.com/file2']
}
最好的方法是什么?
请注意,我将链接存储为models.TextField(null=True, blank=True)
中的models.py
个实例。
提前谢谢。
答案 0 :(得分:1)
使用序列化方法将其转换为列表。为此,请使用drf 3.0中引入的to_representation方法(在以前的版本中称为transform或smth类似)。
def to_representation(self, instance):
ret = super(UserSerializer, self).to_representation(instance)
ret['dl_url'] = ret['dl_url'].split(',')
return ret
答案 1 :(得分:-1)
试试这个:
old_response = { "姓名":" John", " last_name":" Smith", "年龄":35, " dl_url":" [u' http://domain.com/file1',u' http://domain.com/file2']" }
new_response = old_response
new_response [' dl_url'] = new_response [' dl_url'] [1:-1] .split(',')