首页 > 解决方案 > 在更新和设置新权限期间向序列化数据添加密码值 (drf)

问题描述

我正在使用 django rest 框架和 DjangoModelPermissions,我已经序列化了默认用户模型以获取有关用户及其权限的信息,并且管理员可以根据前端(一些 JavaScript)的要求更改权限或使某些用户成为超级用户.

问题是当管理员尝试使用新数据执行 PUT 语句时,它会失败。在用户模型中,密码是必填字段。我有用户的身份验证令牌(不起作用),我没有从用户模型序列化密码,我不想。

我尝试通过使用 user.objects.get(username=data_from_serializer_data).password 获取值来在保存之前附加序列化数据以添加另一个字段“密码”,但我无法向序列化程序数据添加额外的字段(密码字段) .

实现我的目标的方法可能是什么?如何在序列化程序数据中添加密码值(在后端),然后发送完整数据进行更新。

我还在某处读到 serializer.data 是一个无法编辑的属性。如果是真的,我还需要做什么来完成我的任务?

谢谢

标签: djangodjango-rest-frameworkdjango-serializer

解决方案


您可以在创建 CustomUser 并覆盖现有序列化程序后添加get_serializer_class 。


推荐阅读