Модель обновления Django Rest Framework на POST - PullRequest
0 голосов
/ 01 ноября 2019

Я работаю с API, который использует POST как для создания, так и для обновления данных, я пытаюсь заставить rest_framework использовать update_or_create, чтобы проверить, существует ли объект раньше, чем objects.create(). Я хочу переопределить функцию создания в классе ModelSerializer, но не могу заставить ее обновляться, когда я делаю запрос POST, он просто выдаёт мне ошибку 400 already exists

Вот мой сериализатор

from rest_framework import serializers
from metrics.models import *

# Company Serializer
class CompanySerializer(serializers.ModelSerializer):
    class Meta:
        model = Company
        fields = "__all__"

    def create(self, validated_data):
        company, created = Company.objects.update_or_create(**validated_data)
        company.save()

        return company

Viewset

from metrics.models import *
from rest_framework import viewsets, permissions
from .serializers import *
import json

# Company Viewset
class CompanyViewSet(viewsets.ModelViewSet):
    queryset = Company.objects.all()
    permissions_classes = [
        permissions.AllowAny
    ]

    serializer_class = CompanySerializer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...