ked*_*dod 1 python django django-rest-framework
我想要一个带有字段的序列化器,该字段可以采用整数(不是浮点数或任何其他数字类型!)或字符串作为输入。有什么方法可以使它更好/更漂亮吗?
class MyField(Field):
def to_representation(self, value):
if isinstance(value, int):
return value
elif isinstance(value, str):
return value
else:
raise ValidationError('Error')
def to_internal_value(self, data):
if isinstance(data, int):
return data
elif isinstance(data, str):
return data
else:
raise ValidationError('Error')
class MySerializer(Serializer):
my_field = MyField()
Run Code Online (Sandbox Code Playgroud)
您可以组合以下条件:
class MyField(Field):
def to_representation(self, value):
if isinstance(value, int):
return value
elif isinstance(value, str) and value.isdigit():
return value
raise ValidationError('Error')
def to_internal_value(self, data):
if isinstance(data, int):
return data
elif isinstance(data, str) and data.isdigit():
return data
raise ValidationError('Error')
class MySerializer(Serializer):
my_field = MyField()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2047 次 |
| 最近记录: |