Django - Сериализация списка первичных ключей для атрибута ManyToMany?

У меня есть тест, который генерирует список категорий целей, которые являются первичным ключом, затем он заполняет модель, описанную ниже. Когда он переходит к UserInterestViews, если я передаю список goal_category_list, я получаю ошибку, что они не являются действительными PK, но когда я просто передаю 1 строку, все в порядке. Как передать список первичных ключей для поля ManyToManyField в сериализаторе?

test

import json
from django.urls import reverse
from django.test import TestCase
from rest_framework import status
from cheers.models import GoalCategory
from dummy_factory.Factories import UserFactory


class UserInterestsTest(TestCase):
    @classmethod
    # Generates Test DB data to persist throughout all tests
    def setUpTestData(cls) -> None:
        cls.goal_category_list = ['health', 'fitness', 'academic', 'spiritual']
        for gc in cls.goal_category_list:
            GoalCategory.objects.create(category=gc, emoji_url='some_url')

        cls.user = UserFactory()

    def test_create(self):
        response = self.client.post(reverse('set_user_interests'),
                                    data=json.dumps({'user': str(self.user.uuid),
                                                     'categories': self.goal_category_list}),
                                    content_type='application/json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED) 

view.py

class UserInterestsView(APIView):
    """
    View for UserInterests object
    * requires token authentication
    """
    # Create user interests
    @swagger_auto_schema(
        request_body=UserInterestsSerializer,
        operation_description="Create user interests object"
    )
    def post(self, request):
        serializer = UserInterestsSerializer(data=request.data)

        if serializer.is_valid():
            try:
                serializer.save()
            except django.db.utils.InternalError as e:
                return Response(dict(error=e), status=status.HTTP_400_BAD_REQUEST)

            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

model.py

class UserInterests(AbstractBaseModel):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    categories = models.ForeignKey(GoalCategory, on_delete=models.CASCADE)

Удаление categories = GoalCategorySerializer(many=True) из сериализатора, похоже, помогло.

class UserInterestsSerializer(serializers.ModelSerializer):
    categories = GoalCategorySerializer(many=True)

    class Meta:
        model = UserInterests
        fields = ('user', 'categories', 'uuid')
Вернуться на верх