gpt4 book ai didi

python - 覆盖 Django Rest ViewSets 删除行为

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:23 24 4
gpt4 key购买 nike

我定义了这样一个模型:

class Doctor(models.Model):
name = models.CharField(max_length=100)
is_active = models.BooleanField(default=True)

我的序列化程序:

class DoctorSerializer(serializers.ModelSerializer):
class Meta:
model = Doctor
fields = ('id', 'name', )

在 View 中:

class DoctorViewSet(viewsets.ModelViewSet):
queryset = Doctor.objects.all()
serializer_class = DoctorSerializer

现在,我可以通过调用 url 删除医生:'servername/doctors/id/',使用 http 方法 DELETE。但是,我想覆盖此模型的删除行为。我希望,当用户删除记录时,它的 is_active 字段设置为 false,而不实际从数据库中删除记录。我还想保留 Viewset 的其他行为,如列表、放置、创建等。

我该怎么做?我在哪里编写覆盖此删除行为的代码?

最佳答案

class DoctorViewSet(viewsets.ModelViewSet):
queryset = Doctor.objects.all()
serializer_class = DoctorSerializer

def destroy(self, request, *args, **kwargs):
doctor = self.get_object()
doctor.is_active = False
doctor.save()
return Response(data='delete success')

关于python - 覆盖 Django Rest ViewSets 删除行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44317929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com