Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- url(r'^users/register', 'myapp.views.create_auth'),
- @api_view(['POST'])
- def create_auth(request):
- serialized = UserSerializer(data=request.DATA)
- if serialized.is_valid():
- User.objects.create_user(
- serialized.init_data['email'],
- serialized.init_data['username'],
- serialized.init_data['password']
- )
- return Response(serialized.data, status=status.HTTP_201_CREATED)
- else:
- return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
- from rest_framework import serializers
- from django.contrib.auth import get_user_model # If used custom user model
- UserModel = get_user_model()
- class UserSerializer(serializers.ModelSerializer):
- password = serializers.CharField(write_only=True)
- def create(self, validated_data):
- user = UserModel.objects.create(
- username=validated_data['username']
- )
- user.set_password(validated_data['password'])
- user.save()
- return user
- class Meta:
- model = UserModel
- from rest_framework import permissions
- from rest_framework.generics import CreateAPIView
- from django.contrib.auth import get_user_model # If used custom user model
- from .serializers import UserSerializer
- class CreateUserView(CreateAPIView):
- model = get_user_model()
- permission_classes = [
- permissions.AllowAny # Or anon users can't register
- ]
- serializer_class = UserSerializer
- class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model = User
- fields = ('id', 'username', 'password', 'email', 'first_name', 'last_name')
- write_only_fields = ('password',)
- read_only_fields = ('id',)
- def create(self, validated_data):
- user = User.objects.create(
- username=validated_data['username'],
- email=validated_data['email'],
- first_name=validated_data['first_name'],
- last_name=validated_data['last_name']
- )
- user.set_password(validated_data['password'])
- user.save()
- return user
- from django.contrib.auth import get_user_model
- from rest_framework import status, serializers
- from rest_framework.decorators import api_view
- from rest_framework.response import Response
- class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model = get_user_model()
- @api_view(['POST'])
- def register(request):
- VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
- DEFAULTS = {
- # you can define any defaults that you would like for the user, here
- }
- 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_data.update(DEFAULTS)
- 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)
- from django.contrib.auth import get_user_model
- from rest_framework import viewsets
- from rest_framework.permissions import AllowAny
- class UserViewSet(viewsets.ModelViewSet):
- queryset = get_user_model().objects
- serializer_class = UserSerializer
- def get_permissions(self):
- if self.request.method == 'POST':
- self.permission_classes = (AllowAny,)
- return super(UserViewSet, self).get_permissions()
- class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model = get_user_model()
- fields = (
- 'id',
- 'username',
- 'password',
- 'email',
- ...,
- )
- extra_kwargs = {
- 'password': {'write_only': True},
- }
- def create(self, validated_data):
- user = get_user_model().objects.create_user(**validated_data)
- return user
- def update(self, instance, validated_data):
- if 'password' in validated_data:
- password = validated_data.pop('password')
- instance.set_password(password)
- return super(UserSerializer, self).update(instance, validated_data)
- from rest_framework.serializers import ModelSerializer
- class UserSerializer(ModelSerializer):
- class Meta:
- model = User
- def create(self, validated_data):
- user = User(**validated_data)
- # Hash the user's password.
- user.set_password(validated_data['password'])
- user.save()
- return user
- class UserSerializer(serializers.ModelSerializer):
- password = serializers.CharField(
- write_only=True,
- )
- class Meta:
- model = User
- fields = ('password', 'username', 'first_name', 'last_name',)
- def create(self, validated_data):
- user = super(UserSerializer, self).create(validated_data)
- if 'password' in validated_data:
- user.set_password(validated_data['password'])
- user.save()
- return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement