Django Rest Framework: Получена `TypeError` при вызове `*.objects.create()` при установке авторизованного пользователя в качестве владельца команды

Я пытаюсь установить вошедшего в систему пользователя в качестве владельца команды, которую он создает. Однако я получаю следующую ошибку: Got a TypeError when calling Team.objects.create(). This may be because you have a writable field on the serializer class that is not a valid argument to Team.objects.create()

В models.py:

class Team(models.Model):
name = models.CharField(max_length=100)
owner = models.OneToOneField(
    to=get_user_model(),
    on_delete=models.CASCADE,
    editable=False,
)
budget = models.PositiveBigIntegerField(default=5000000)
country = MultiSelectField(choices=COUNTRY_CHOICES)
value = models.PositiveBigIntegerField(default=0)

В serializers.py:

class TeamSerializer(ModelSerializer):
owner = UserSerializer(read_only=True)

class Meta:
    model = Team
    fields = '__all__'
    read_only_fields = ['owner', 'budget', 'value']

В views.py

class TeamCreateView(CreateAPIView):
queryset = Team.objects.all()
permission_classes = [IsAuthenticated]
authentication_classes = [SessionAuthentication, BasicAuthentication]
serializer_class = TeamSerializer

def perform_create(self, serializer):
    serializer.save(owner=self.request.user)

В urls.py

    path('team/', TeamCreateView.as_view(), name='create_team'),

Пожалуйста, не обращайте внимания на плохой отступ. Я не уверен, почему возникает ошибка или что я сделал по-другому. Уже проверил некоторые другие вопросы, такие как:

Django Rest Framework - "Got a `TypeError` when calling `Note.objects.create()'"

Django Rest Framework вложенные объекты создаются с помощью request.user

Интересно, не потому ли это, что я использую OneToOneField вместо ForeignKey, поскольку, насколько мне известно, ForeignKey не следует использовать, когда unique=True

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