Advertisement
Guest User

Untitled

a guest
May 5th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. url(r'^users/register', 'myapp.views.create_auth'),
  2.  
  3. @api_view(['POST'])
  4. def create_auth(request):
  5. serialized = UserSerializer(data=request.DATA)
  6. if serialized.is_valid():
  7. User.objects.create_user(
  8. serialized.init_data['email'],
  9. serialized.init_data['username'],
  10. serialized.init_data['password']
  11. )
  12. return Response(serialized.data, status=status.HTTP_201_CREATED)
  13. else:
  14. return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
  15.  
  16. from rest_framework import serializers
  17. from django.contrib.auth import get_user_model # If used custom user model
  18.  
  19. UserModel = get_user_model()
  20.  
  21.  
  22. class UserSerializer(serializers.ModelSerializer):
  23.  
  24. password = serializers.CharField(write_only=True)
  25.  
  26. def create(self, validated_data):
  27.  
  28. user = UserModel.objects.create(
  29. username=validated_data['username']
  30. )
  31. user.set_password(validated_data['password'])
  32. user.save()
  33.  
  34. return user
  35.  
  36. class Meta:
  37. model = UserModel
  38.  
  39. from rest_framework import permissions
  40. from rest_framework.generics import CreateAPIView
  41. from django.contrib.auth import get_user_model # If used custom user model
  42.  
  43. from .serializers import UserSerializer
  44.  
  45.  
  46. class CreateUserView(CreateAPIView):
  47.  
  48. model = get_user_model()
  49. permission_classes = [
  50. permissions.AllowAny # Or anon users can't register
  51. ]
  52. serializer_class = UserSerializer
  53.  
  54. class UserSerializer(serializers.ModelSerializer):
  55. class Meta:
  56. model = User
  57. fields = ('id', 'username', 'password', 'email', 'first_name', 'last_name')
  58. write_only_fields = ('password',)
  59. read_only_fields = ('id',)
  60.  
  61. def create(self, validated_data):
  62. user = User.objects.create(
  63. username=validated_data['username'],
  64. email=validated_data['email'],
  65. first_name=validated_data['first_name'],
  66. last_name=validated_data['last_name']
  67. )
  68.  
  69. user.set_password(validated_data['password'])
  70. user.save()
  71.  
  72. return user
  73.  
  74. from django.contrib.auth import get_user_model
  75.  
  76. from rest_framework import status, serializers
  77. from rest_framework.decorators import api_view
  78. from rest_framework.response import Response
  79.  
  80. class UserSerializer(serializers.ModelSerializer):
  81. class Meta:
  82. model = get_user_model()
  83.  
  84. @api_view(['POST'])
  85. def register(request):
  86. VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
  87. DEFAULTS = {
  88. # you can define any defaults that you would like for the user, here
  89. }
  90. serialized = UserSerializer(data=request.DATA)
  91. if serialized.is_valid():
  92. user_data = {field: data for (field, data) in request.DATA.items() if field in VALID_USER_FIELDS}
  93. user_data.update(DEFAULTS)
  94. user = get_user_model().objects.create_user(
  95. **user_data
  96. )
  97. return Response(UserSerializer(instance=user).data, status=status.HTTP_201_CREATED)
  98. else:
  99. return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
  100.  
  101. from django.contrib.auth import get_user_model
  102. from rest_framework import viewsets
  103. from rest_framework.permissions import AllowAny
  104.  
  105.  
  106. class UserViewSet(viewsets.ModelViewSet):
  107. queryset = get_user_model().objects
  108. serializer_class = UserSerializer
  109.  
  110. def get_permissions(self):
  111. if self.request.method == 'POST':
  112. self.permission_classes = (AllowAny,)
  113.  
  114. return super(UserViewSet, self).get_permissions()
  115.  
  116. class UserSerializer(serializers.ModelSerializer):
  117.  
  118. class Meta:
  119. model = get_user_model()
  120. fields = (
  121. 'id',
  122. 'username',
  123. 'password',
  124. 'email',
  125. ...,
  126. )
  127. extra_kwargs = {
  128. 'password': {'write_only': True},
  129. }
  130.  
  131. def create(self, validated_data):
  132. user = get_user_model().objects.create_user(**validated_data)
  133. return user
  134.  
  135. def update(self, instance, validated_data):
  136. if 'password' in validated_data:
  137. password = validated_data.pop('password')
  138. instance.set_password(password)
  139. return super(UserSerializer, self).update(instance, validated_data)
  140.  
  141. from rest_framework.serializers import ModelSerializer
  142.  
  143. class UserSerializer(ModelSerializer):
  144.  
  145. class Meta:
  146. model = User
  147.  
  148. def create(self, validated_data):
  149. user = User(**validated_data)
  150. # Hash the user's password.
  151. user.set_password(validated_data['password'])
  152. user.save()
  153. return user
  154.  
  155. class UserSerializer(serializers.ModelSerializer):
  156.  
  157. password = serializers.CharField(
  158. write_only=True,
  159. )
  160.  
  161. class Meta:
  162. model = User
  163. fields = ('password', 'username', 'first_name', 'last_name',)
  164.  
  165. def create(self, validated_data):
  166. user = super(UserSerializer, self).create(validated_data)
  167. if 'password' in validated_data:
  168. user.set_password(validated_data['password'])
  169. user.save()
  170. return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement