在 django 中,创建用户与通常的模型实例创建具有不同且独特的流程。您需要调用create_user()
which 是BaseUserManager
.
由于 django REST 框架的流程是 do restore_object()
and then save_object()
,因此不可能ModelSerializer
在通用创建 API 端点中使用 a 简单地创建用户,而无需破解。
什么是解决这个问题的干净方法?或者至少使用 django 的内置管道让它工作?
编辑:
需要注意的是,特别不起作用的是,一旦您尝试使用它对创建的用户实例进行身份验证,django.contrib.auth.authenticate
如果该实例只是使用User.objects.create()
而不是创建的,它就会失败.create_user()
。