Я хочу создать API регистрации, в котором я хочу объединить модель пользователя и модель профиля, чтобы создать нового пользователя, добавив имя пользователя, адрес электронной почты, пароль (поля модели пользователя) и пол, зарплату, компанию,и адрес (поля модели профиля). Я попытался использовать источник по этой ссылке . Тем не менее, я не могу разместить любые данные. Это мой код:
views.py:
class RegisterAPIView(APIView):
def post(self, request, format=None):
serializer = ProfileSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response("Thank you for registering", status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
serializers.py:
from rest_framework import serializers
from users.models import Profile
from django.contrib.auth.models import User
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ['gender', 'company', 'salary', 'address']
class RegisterBSerializer(serializers.ModelSerializer): #User Model serializer
profile = ProfileSerializer()
class Meta:
model = User
fields = ['username', 'email', 'password']
def create(self, validated_data):
profile_data = validated_data.pop('profile')
password = validated_data.pop('password', None)
user = User.objects.create(**validated_data)
if password is not None:
user.set_password(password)
user.save()
Profile.objects.create(user = user, **profile_data)
return user
Может ли кто-нибудь намекнуть мне, куда я ухожу?
Я не могу добавить данные через DRF: image
Обычно я должен получатьТело, в котором говорится:
{"username" : "this field is required",
"email" : "this field is required",
"password" : "this field is required", (will be hashed using set_password())
"gender" : "this field is required",} etc etc...