在 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()。