Я пытаюсь создать экземпляр, переопределяющий метод create
и передающий экземпляр ForeignKey
в данные, но это поле не включено в validated_data
, переданный методу create
.Как я могу передать это create
??
У меня есть эта модель.
class UserProfile(models.Model):
name = models.CharField(verbose_name='Name', max_length=50)
email = models.EmailField(verbose_name='Email')
address = models.TextField(verbose_name='Address', null=True, blank=True)
user = models.OneToOneField(User, verbose_name='User', on_delete=models.CASCADE)
А вот мой сериализатор.
class UserProfileSerializer(ModelSerializer):
class Meta:
model = UserProfile
fields = '__all__'
depth = 2
def create(self, validated_data):
print(validated_data)
return UserProfile.objects.create(**validated_data)
Вот мой взгляд.
class UserRegisterView(APIView):
def post(self, request, format=None, *args, **kwargs):
name = request.data.get('name')
email = request.data.get('email')
password = request.data.get('password')
address = request.data.get('address')
if name and email and password:
user = User.objects.create_user(username=email, password=password, email=email)
request.data['user'] = user
serializer = UserProfileSerializer(data=request.data)
if serializer.is_valid():
user_profile = serializer.save()
Несмотря на то, что я передаю объект User
в сериализатор, он не включен в validated_data
.Официальный документ предлагает создать еще один сериализатор для User
модели и использовать его, но есть ли другой способ без создания этого сериализатора ??