Django Criando um usuário personalizado com o Django Rest Framework
Estou tentando criar um usuário personalizado usando o Django Rest Framework. Cheguei ao ponto em que posso criar um usuário comum, mas não tenho certeza de como estendê-lo ao modelo de usuário personalizado.
models.py:
from django.db import models
from django.contrib.postgres.fields import ArrayField
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
languages = ArrayField(models.CharField(max_length=30, blank=True))
serializers.py:
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'username', 'password')
def create(self, validated_data, instance=None):
user = super(UserSerializer, self).create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user
views.py:
@api_view(['POST'])
@permission_classes((AllowAny,))
def create_user(request):
serialized = UserSerializer(data=request.data)
if serialized.is_valid():
serialized.save()
return Response(serialized.data, status=status.HTTP_201_CREATED)
else:
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Como faço para estender olanguages
campo para oUserSerializer
para onde ele pode processá-lo? Seria melhor criar umsignal
para sempreuser
é criado, em seguida, cria umuserprofile
automaticamente?