Добавление дополнительного поля в ответ в pytest-django

Я новичок в тестировании и я потратил день на поиск решения для моей проблемы, но я не смог найти ни одного. это мой сериализатор

serilaizer.py

class LeadSerializer(serializers.ModelSerializer):

    def create(self, validated_data):
        user = self.context['user']

        return Lead.objects.create(organizer=user.organizeruser, **validated_data)

    class Meta:
        model = Lead
        fields = ['id', 'first_name', 'last_name', 'age', 'agent', 'category', 'description', 'date_added',
                  'phone_number', 'email', 'converted_date'
                  ]

У меня есть два типа пользователей, организатор и агент. организатор может создать лид, а агент нет. и как вы видите, у меня нет поля организатора. аутентифицированный пользователь будет добавлен в поле организатора, когда создается лид.

test.py

    def test_if_lead_exist_return_200(self, api_client, leads_factory, user_factory):
        user = user_factory.create(is_organizer=True)
        api_client.force_authenticate(user=User(is_staff=True))

        lead = leads_factory.create()

        serializer = LeadSerializer(context={'request': user})
        print(serializer)
        # here I can see the user

        response = api_client.get(f'/api/leads/{lead.id}/', )

        assert response.status_code == status.HTTP_200_OK

        assert response.data == {
            'id': lead.id,
            'first_name': lead.first_name,
            'last_name': lead.last_name,
            'age': lead.age,
            'organizer': lead.organizer.id,
            'agent': lead.agent.id,
            'category': lead.category.id,
            'description': lead.description,
            'date_added': lead.date_added,
            'phone_number': lead.phone_number,
            'email': lead.email,
            'converted_date': lead.converted_date,

        }

поскольку в серийнике нет поля organizer тест не пройдет и это результат теста

enter image description here

что я могу сделать здесь? Могу ли я передать пользователя-организатора в ответ?

Вы должны добавить organizer в поля.

class LeadSerializer(serializers.ModelSerializer):
    class Meta:
        model = Lead
        # here I added the `organizer` field
        fields = ['id', 'first_name', 'last_name', 'age', 'agent', 'category', 'description', 'date_added', 'phone_number', 'email', 'converted_date', 'organizer']

    def create(self, validated_data):
        ...
        
Вернуться на верх