如何使字段在 Django REST framework 中创建时可编辑和只读

Fom*_*aut 12 django django-rest-framework

我想实现一种 Django 模型的常量字段。我希望在创建模型实例时设置该字段(通过 REST 框架 API),但在更新此字段时必须禁止更改。在 Django 本身或 REST framework 序列化器选项中是否有一种优雅的方法来做到这一点?

F.M*_*.F. 10

覆盖序列化程序中的更新方法并删除该字段:

class MySerializer(serializers.ModelSerializer):        
    def update(self, instance, validated_data):
        validated_data.pop('myfield', None)  # prevent myfield from being updated
        return super().update(instance, validated_data)
Run Code Online (Sandbox Code Playgroud)