python - DRF 序列化程序字段重命名为其在验证数据中的源

我有一个 drf 序列化程序,其中有一个我想重命名的字段:

class UserBulkUploadSerializer(serializers.Serializer):
    ...
    is_admin = serializers.BooleanField(required=False, source='administrator')

但是,在 validated_data 属性中,它被重新命名为 source 属性值。我这样做:

serializer = UserBulkUploadSerializer(data=data)
serializer.is_valid()
return serializer.validated_data

那里没有 is_admin 键,它是 administrator

有没有办法克服这个问题并使其成为 validated_data 中的 is_admin

最佳答案

我认为您需要添加两个字段,一个只写字段和一个只读字段。 像这样:

class UserBulkUploadSerializer(serializers.Serializer):
    ...
    administrator = serializers.BooleanField(required=False)
    is_admin = serializers.BooleanField(read_only=True, source='administrator')

    extra_kwargs = {
        'administrator': {'write_only': True},
    }

我还没有能够测试这个,所以我不确定具有相同来源的两个字段是否会导致错误,否则你可以将 is_admin 更改为 SerializerMethodField。

https://stackoverflow.com/questions/58023503/

相关文章:

terminal - 尝试启动 Virtual Box 时如何修复这些错误?

matplotlib - plt.show() 后不显示绘图,未给出错误 'and only sho

python - 在单元测试中使用补丁模块时,自动完成 pycharm 不起作用

ios - 使用 `xcodebuild` 归档时 CompileSwift 正常 arm64

c# - 如何在 PuppeteerSharp 中设置下载行为?

flutter - NestedScrollView with tabbarview scrolli

gitlab - 任何人都可以发布具有外部子模块的 GitLab CI 的工作示例吗?

php - 自定义集合操作和IRI转换问题

python - 如何在 seaborn python 中组合两个 relplots?

python - 在pygame中检测键盘输入时只有某些键起作用