如何覆盖django-rest框架中的delete方法(泛型类)



我正在尝试覆盖泛型中的delete方法。使用以下代码段检索UpdateDestroyAPIView类。:-

视图.py

class ArtistView(generics.RetrieveUpdateDestroyAPIView):
serializer_class = ArtistSerializer
queryset = Users.objects.filter(user_type='artist')

在序列化程序中.py

class ArtistProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('profile_pic_url','cover_pic_url','full_name','genre','location')

class ArtistSerializer(serializers.ModelSerializer):
profiles = ArtistProfileSerializer(many=False)
class Meta:
model = Users
fields =  ['id','user_type', 'email', 'profiles','username']
def delete(self, instance, *arg, **kwargs):
profile = instance.profiles
profile.delete()

在urls.py 中

urlpatterns = [
path('all-artist/', views.ArtistListView.as_view()),
path('all-artist/<int:pk>', views.ArtistView.as_view())]

您不需要在Serializer中定义delete()方法(当然也不需要在Meta定义中(。

删除逻辑应该为您处理,因为您从视图中的RetrieveUpdateDestroyAPIView派生。

如果要添加自定义逻辑,则可以覆盖视图中的perform_destroy()

  • RetrieveUpdateDestroyAPIView

  • DestroyModelMixin

最新更新