Обновить/удалить записи в БД через Django
Отправляю на сервер данные следующего вида:
[{
"id": 36,
"id_cards": 1,
"count": 1,
"foil": 2,
"language": 2,
"id_user": 1
},
{
"id": 37,
"id_cards": 324,
"count": 2,
"foil": 0,
"language": 0,
"id_user": 1
},
{
"id": 38,
"id_cards": 324,
"count": 2,
"foil": 0,
"language": 1,
"id_user": 1
}]
Сохранять я их уже научился в БД. Как теперь при таких же входных данных обновить/удалить записи в БД?
Модель:
class User_cards(models.Model):
id_user = models.ForeignKey(User, on_delete=models.CASCADE, )
id_cards = models.IntegerField()
count = models.IntegerField(default=0)
foil = models.IntegerField(blank=True)
language = models.IntegerField(blank=True)
def __str__(self):
return self.name
class Meta:
unique_together = ('id_user', 'id_cards', 'foil', 'language')
Сериализер:
class CardsUserAddSerializers(serializers.ModelSerializer):
class Meta:
model = User_cards
fields = ('id_user', 'id_cards', 'count', 'foil', 'language')
Вьюха:
class CardsUserAdd(generics.CreateAPIView):
serializer_class = CardsUserAddSerializers
def post(self, request, format=None):
data = request.data
print(data)
print("Добавили")
serializer = CardsUserAddSerializers(many=True, data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
print(serializer.errors)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request):
data = request.data
print(data)
print("Добавили")
serializer = CardsUserAddSerializers(many=True, data=data)
return Response(data)
def delete(self, request):
data = request.data
print(data)
print("Удалили")
serializer = CardsUserAddSerializers(many=True, data=data)
return Response(data)
Твоя вьюха наследуется от CreateAPIView который подразумевает долько создание, а тебе уже нужен GenericAPIView + миксины. Или сразу ModelViewSet.