Неожиданное поведение при вызове метода serializer.create приводит к потере данных в несвязанных данных (Django Rest Framework)

Django>=4.2.7,<4.3.0
djangorestframework>=3.14.0,<3.15.0
python-dateutil>=2.8.2,<2.9.0
psycopg2-binary>=2.9.9,<3.0.0
django-crontab>=0.7.1,<0.8.0

Я пишу тест для метода serializer.create. Я подготовил некоторые данные, чтобы передать их в метод create

    def create(self, validated_data):
        """
        Passing in the restructured validated_data to the
        CostumUserCreate method.
        """
        user_data = validated_data.get('user_data')
        profile_data = validated_data.get('profile_data')

        new_user = User.objects.create(
            user_data=user_data,
            profile_data=profile_data
        )

        return new_user

мой тест:

    def test_serializer_create(self):
        """
        Tests the correct restructuring of the validated data within
        the CustomUserSerializer create method.
        """
        data = {}
        user_data = {
            'email': 'updated.email@GMAIL.com',  # Not normalized
            'password': 'blabla123'
        }

        profile_data = {
            'first_name': 'Jay',
            'last_name': 'Miller',
            'position': self.position1
        }

        data['user_data'] = user_data
        data['profile_data'] = profile_data

        serializer = serializers.CustomUserSerializer()
        user = serializer.create(data)

        print(f'USER DATA: {user_data}')
        print(f'PROFILE DATA: {profile_data}')


Когда я пытаюсь вывести в консоль данные пользователя и данные профиля, они выводятся как пустой словарь в случае данных пользователя, но не для данных профиля USER DATA: {} PROFILE DATA: {'first_name': 'Jay', 'last_name': 'Miller', 'position': <Position: Human Resource Specialist>}

но как только я закомментирую метод serializer.create, пользовательские данные снова появятся в терминале USER DATA: {'email': 'updated.email@GMAIL.com', 'password': 'blabla123'} PROFILE DATA: {'first_name': 'Jay', 'last_name': 'Miller', 'position': <Position: Human Resource Specialist>}

Я понятия не имею, как это вообще может происходить, поскольку метод serializer.create или, соответственно, любой другой метод не должен оказывать никакого влияния на переменные, к которым обращаются до передачи в них... или я что-то не так понял? Я буквально не представляю, как это исправить, я пробовал гуглить, общаться в чате, но так и не понял, что здесь происходит.

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