Распаковка данных в django rest framework

Я запутался в распаковке данных или проверенных данных в сериализаторах django. Например, я читаю фрагменты кода из документации по drf и это выглядит следующим образом.

class UserSerializer(serializers.ModelSerializer):
    profile = ProfileSerializer()

    class Meta:
        model = User
        fields = ['username', 'email', 'profile']

    def create(self, validated_data):
        profile_data = validated_data.pop('profile')
        user = User.objects.create(**validated_data)
        Profile.objects.create(user=user, **profile_data)
        return user

Здесь я знаю, что если мы поставим ** перед **kwargs, то распакуется словарь kwargs и мы получим только значения. Но в приведенной выше строке Profile.objects.create(user=user, **profile_data) распакуется profile_data, что означает, что мы получили значения для полей. Но я думаю, что при использовании функции create должно быть что-то вроде address=address,mobile=mobile etc. Приведет ли **profile_data к тому, о чем я говорил? Также, когда я делаю print(**profile_data), это дает мне ошибку. Как тогда это развернуть?

Вернуться на верх