Ошибка сериализатора для поля списка при запуске тестов в Django
У меня возникла странная проблема при использовании TestCase и Client в Django.
from django.test import TestCase, Client
data is:
data = {
"match_status": MatchStatus.FINISHED,
"winner_side": Side.CITY,
"end_time": get_now(),
"players": [
{
"uuid": self.player.uuid,
"role": self.role,
"success_acts": [self.act1.id],
"failed_acts": [self.act2.id, self.act3.id]
}
]
}
from django.test import Clien as client
self.client.post(reverse("match-finish", args=[self.match_create.uuid]), data=data)
это пользовательский сериализатор:
class MatchFinishPlayerSerializer(BaseSerializer):
uuid = UUIDField()
role = IntegerField()
success_acts = ListField()
failed_acts = ListField()
class MatchFinishSerializer(BaseSerializer):
match_status = IntegerField()
winner_side = IntegerField()
end_time = DateTimeField()
players = MatchFinishPlayerSerializer(many=True)
Часть файла view.py:
@action(methods=["POST"], url_path="finish", url_name="finish", detail=True)
def finish(self, request, uuid: UUID = None):
serializer = self.get_serializer_class()(data=request.data)
serializer.is_valid(raise_exception=True)
return Response(serializer.validated_data)
и когда я запускаю python manage.py test
я получаю ошибку:
{'players': ['This field is required.']}