如果我使用django-rest-framework中的ModelSerializer类,我如何确保密码被哈希?因为调用modelSerializer.save()不会哈希称为'password'的字段?有没有办法指定一个字段需要在“Meta:”中进行哈希?
答案 0 :(得分:0)
要做这种转变,你可以做两件事:
validate_xxx
更改字段值(请参阅docs)如果您正在讨论Django用户模型,则可以在序列化程序中定义pre_save
方法,该方法调用User.set_password
。
答案 1 :(得分:0)
我最终修改了未序列化的请求对象并在我序列化之前散列密码django使用make_password使这很容易
def prehash(self, request):
password = request.DATA['password']
password = make_password(password)
request = request.DATA
request = request.copy()
request.update({'password':password})
return request