使用 Django REST Framework 进行 BitField 序列化

Tza*_*ach 5 python django django-rest-framework django-bitfield

我有一个包含BitField. 尝试使用 Django Rest Framework 序列化对象时,返回以下错误:

{"flags": ["Enter a whole number."]}
Run Code Online (Sandbox Code Playgroud)

(flagsBitField)

如何BitField使用 Django Rest Framework序列化一个?

Tza*_*ach 3

找到了答案。我需要为以下内容创建一个自定义序列化器BitField

class BitFieldSerializer(serializers.WritableField):        
    def to_native(self, obj):
        return int(obj)
Run Code Online (Sandbox Code Playgroud)

并在模型序列化器中使用它:

class MyModelSerializer(serializers.ModelSerializer):
    flags = BitFieldSerializer()
Run Code Online (Sandbox Code Playgroud)