我正在使用https://stackoverflow.com/a/19337404/4507367回答
中的代码@api_view(['POST'])
def register(request):
VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
serialized = UserSerializer(data=request.data)
if serialized.is_valid():
user_data = {field: data for (field, data) in request.data.items() if field in VALID_USER_FIELDS}
user = get_user_model().objects.create_user(
**user_data
)
return Response(UserSerializer(instance=user).data, status=status.HTTP_201_CREATED)
else:
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
注册用户,但是如果注册请求包含已经使用的电子邮件,我希望注册失败。这可以通过user_data['email']
过滤所有用户并在电子邮件已经存在时拒绝请求来完成,但感觉这是一种不好的做法。必须有更好的方法!