Я пытаюсь заставить мою django-rest-framework принимать список диктов для обновления или создания множества объектов за один вызов API.
Моя модель:
class Order(models.Model):
internal_id = models.CharField(max_length=500, unique=True)
external_id = models.CharField(max_length=500, blank=True, null=True, unique=True)
status = models.CharField(max_length=500, blank=True, null=True)
Myseriallizer:
class SimpleOrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = '__all__'
Мой взгляд:
class CreateListMixin():
def get_serializer(self, *args, **kwargs):
if isinstance(kwargs.get('data', {}), list):
kwargs['many'] = True
return super().get_serializer(*args, **kwargs)
class OrderViewSet(CreateListMixin, viewsets.ModelViewSet):
queryset = Order.objects.all()
serializer_class = SimpleOrderSerializer
lookup_field = 'internal_id'
Этот код прекрасно работает, если я помещаю в POST список словарей с новыми значениями internal_id
, но если я включаю уже существующее значениеЯ хочу обновить этот объект. Возможно ли это с django-rest-framework?