序列化 DynamicField
Serialize DynamicField
我有一些模型:
class Settings(mongoengine.Document):
name = mongoengine.StringField()
range = mongoengine.DynamicField()
和它的序列化器:
class SettingsSerializer(serializers.DocumentSerializer):
class Meta:
model = Settings
fields = [
'name',
'range'
]
字段'range'可以是字典或列表。
但是,当我进行序列化时,我只得到了这个字段的字符串:
{
"name": "hello world",
"range": "{'max': 100, 'min': 0}",
}
序列化后如何获取list或dict?
您可以使用 python eval 的方法和 DRF SerializerMethodField 来做到这一点。
试试这个。
from rest_framework import serializers as drf_serailizer
class SettingsSerializer(serializers.DocumentSerializer):
range = drf_serailizer.SerializerMethodField()
class Meta:
model = Settings
fields = [
'name',
'range'
]
def get_range(self, object):
try:
return eval(object.range)
except:
return None
我有一些模型:
class Settings(mongoengine.Document):
name = mongoengine.StringField()
range = mongoengine.DynamicField()
和它的序列化器:
class SettingsSerializer(serializers.DocumentSerializer):
class Meta:
model = Settings
fields = [
'name',
'range'
]
字段'range'可以是字典或列表。 但是,当我进行序列化时,我只得到了这个字段的字符串:
{
"name": "hello world",
"range": "{'max': 100, 'min': 0}",
}
序列化后如何获取list或dict?
您可以使用 python eval 的方法和 DRF SerializerMethodField 来做到这一点。
试试这个。
from rest_framework import serializers as drf_serailizer
class SettingsSerializer(serializers.DocumentSerializer):
range = drf_serailizer.SerializerMethodField()
class Meta:
model = Settings
fields = [
'name',
'range'
]
def get_range(self, object):
try:
return eval(object.range)
except:
return None