Ich versuche, eine API für die Benutzerregistrierung mit dem Django Rest Framework zu erstellen. die folgende models.py DateiBenutzerregistrierung mit Django Rest Framework
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)
Ich habe Dies ist mein Serializers.py Datei
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')
Und finden Sie meine views.py Datei
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
Was ist der beste Weg, um eine User-Registrierung mit der API-Ansicht t zu erstellen? Hut ich habe erstellt. Ich habe viele Alternativen ausprobiert wie überschreiben der create-Methode in der UserProfile Serializer-Klasse und auch drf-schreibbar-geschachtelt, aber Fehler bekommen.
Bitte schlagen Sie mir einen Ausweg vor. Ich möchte auch, dass die API Benutzer registrieren kann, wenn sie von einer Android-App aufgerufen wird.
anstatt deine eigene Registrierung auszurollen, warum nutzt du nicht einfach die verfügbaren Pakete für die Registrierung wie Django-RestAuth oder django-knox. Schau hier. http://www.django-rest-framework.org/api-guide/authentication/ –