Django Crear un usuario personalizado con Django Rest Framework
Estoy tratando de crear un usuario personalizado con Django Rest Framework. Llegué al punto en el que puedo crear un usuario normal, pero no estoy seguro de cómo extenderlo al modelo de usuario personalizado.
modelos.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)
¿Cómo extiendo ellanguages
campo a laUserSerializer
a donde puede procesarlo? ¿Sería mejor crear unsignal
por cada vez que unuser
se crea y luego crea unuserprofile
¿automáticamente?