【发布时间】:2021-05-18 02:59:52
【问题描述】:
我正在尝试使用 django 通用视图。我希望能够使用相同的视图同时删除多个对象。例如删除我模型中的所有“femail”员工。 我使用了以下代码:
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)
这是我的网址代码:
path('mydel/<str:gender>/', view.EmployeeDeleteandUpdate.as_view()),
还有我的模特:
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
但是当我在我的 django rest 框架中使用带有以下 url 的删除方法时:
http://127.0.0.1:8000/mydel/femail/
我收到此错误:
client.models.Employee.MultipleObjectsReturned: get() 返回更多 超过 1 个 Employee - 它返回 2 个!
有人可以帮我解决这个问题吗?
【问题讨论】:
标签: django api django-models django-rest-framework