Я работаю с 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