User Registeration Using Django Rest Framework

Viewed 662

I am trying to create a api for user Registration using the django rest framework.
I have the following models.py file

from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver


class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE , primary_key = True)
    mobileNumber = models.IntegerField(default=0)
    avatar= models.ImageField(upload_to = 'User/' , default = '/static/User/defaultProfileImage.png')


def create_user_profile(sender, **kwargs):
    if kwargs['created']:
        profile = UserProfile.objects.create(user=kwargs['instance'])


post_save.connect(create_user_profile, sender=User)

This is my Serializers.py file

from rest_framework import serializers
from User.models import UserProfile
from django.contrib.auth.models import User





class UserSerializer(serializers.HyperlinkedModelSerializer):
    username = serializers.CharField()
    password1 = serializers.CharField(
        style={'input_type': 'password'},
        write_only=True)
    password2 = serializers.CharField(
        style={'input_type': 'password'},
        write_only=True)
    email = serializers.EmailField()
    class Meta:
        model = User
        fields = (
            'id',
            'username',
            'password1',
            'password2',
            'email',
            'first_name',
            'last_name',
            )

class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
    user = UserSerializer()
    class Meta:
        model = UserProfile
        fields = (
            'user',
            'mobileNumber',
            'avatar')

And following is my views.py file

from User.models import UserProfile
from .serializers import UserProfileSerializer
from rest_framework.viewsets import ModelViewSet


class UserProfileViewSet(ModelViewSet):
    queryset = UserProfile.objects.all()
    serializer_class = UserProfileSerializer

What is the best way to create a User Registeration using the api view that i have created. I tried many alternatives like overriding the create method in the UserProfile Serializer class and also the drf-writable-nested but got errors.
Please suggest me a way out. Also i want that the api is able to register users when called on by an android app.

1 Answers
Related