我有一个 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 的工作示例吗?