我在Django 1.9上使用Django Rest Auth在系统上注册新用户。我需要在此过程中执行一些额外的代码,以便在另一个表上保存额外的数据。
有人知道最好的方法吗?
答案 0 :(得分:2)
编写 CustomRegisterSerializer 并将其添加到 settings.py 文件中。
REST_AUTH_REGISTER_SERIALIZERS = {
"REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer"
}
编写新创建的序列化程序的 save()方法并输入一些额外的可执行代码。
如果您的用户模型有额外字段,则可以编写 validate_field 方法。
作为参考,您可以在此处查看 rest_auth RegistrationSerializer https://github.com/Tivix/django-rest-auth/blob/master/rest_auth/registration/serializers.py
我希望这会有所帮助。
答案 1 :(得分:0)
我同意@ ashish2py' s reply above:
但是,想要为自定义序列化程序的其他参考文件的保存方法添加一个示例。
<强>步骤:强>
在settings.py文件中添加以下行。 (假设您的应用名称为&#34; common_app&#34;)
REST_AUTH_REGISTER_SERIALIZERS = {
"REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer"
}
在common_app / serializer.py文件中添加CustomRegisterSerializer类,如下所示(覆盖保存方法)。
class CustomRegisterSerializer(RegisterSerializer):
def save(self, request):
user = super(CustomRegisterSerializer, self).save(request)
logger.debug("[GroupProfile-Manager] Manager user registration #{}: {}".format(user.id, user.email))
### YOUR CUSTOM LOGIC GOES HERE ###
group_prof_obj.join(user=user, role='manager')
return user