Распаковка данных в 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)
, это дает мне ошибку. Как тогда это развернуть?