i'm trying to use django generic view. and i want to be able to delete multiple objects at the same time using the same view.for example delete all the 'femail' Employees in my model. i used the following code:
from ..models import Employee
from . import serializer
from rest_framework import generics, status
from rest_framework.response import Response
from django.shortcuts import get_list_or_404, get_object_or_404
class EmployeeDeleteandUpdate(generics.UpdateAPIView):
queryset = Employee.objects.filter(gender__startswith='femail')
serializer_class = serializer.PostSerializer
def delete(self, request, *args, **kwargs):
myobj = get_object_or_404(Employee, gender=kwargs['gender'])
myobj.delete()
return Response("Femails deleted", status=status.HTTP_204_NO_CONTENT)
and heres my url code:
path('mydel/<str:gender>/', view.EmployeeDeleteandUpdate.as_view()),
and also my model:
class Employee(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
gender = models.CharField(max_length=10)
national_code = models.CharField(max_length=11)
personal_code = models.CharField(max_length=15)
phone_number = models.CharField(max_length=11)
address = models.CharField(max_length=50)
married = models.BooleanField()
age = models.IntegerField()
wage = models.IntegerField()
def __str__(self):
return self.first_name
but when i use delete method with following url in my django rest framework:
http://127.0.0.1:8000/mydel/femail/
i get this error:
client.models.Employee.MultipleObjectsReturned: get() returned more than one Employee -- it returned 2!
can somebody help me with this problem please??