# this is models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to='avatar/', null=True, blank=True)
password2 = models.CharField(max_length=15)
def __str__(self):
return self.user.username
# this is serializer.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('avatar',)
def create(self, validated_data):
user_data = validated_data.pop('user')
user = User.objects.create_user(**user_data)
profile = Profile.objects.create(user=user, **validated_data)
return profile
# this is view.py
@api_view(['GET', 'POST'])
def User_view(request):
if request.method == "GET":
user = Profile.objects.all()
serializer = UserSerializer(user, many=True)
return Response(serializer.data)
elif request.method == "POST":
serializer = UserSerializer(data=request.data)
print(serializer)
if serializer.is_valid():
serializer.save()
return Response({'message': serializer.data}, status=status.HTTP_201_CREATED)
return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
Я новичок в Django Я хочу построить модель для регистрации пользователя с его профилем и паролем2 для подтверждения пароля, но я не понял, как расширить модель пользователя и дать правильное сообщение об успехе и ошибка.