整数或字符串的序列化程序字段

2024-09-21 07:32:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想有一个序列化与字段可以采取整数(不是浮点数或任何其他数字类型!)或者字符串作为输入。有什么方法可以让它更好/更漂亮吗

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()

Tags: toselfdatareturnifvaluedefelse
1条回答
网友
1楼 · 发布于 2024-09-21 07:32:10

您可以结合以下条件:

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()

相关问题 更多 >

    热门问题