Python 从db Django Rest_框架视图函数中删除用户
我对django_REST框架还很陌生。我希望在收到Python 从db Django Rest_框架视图函数中删除用户,python,django,django-rest-framework,Python,Django,Django Rest Framework,我对django_REST框架还很陌生。我希望在收到delete请求时能够从数据库中删除用户 以下是我的看法: class RetrieveUsersView(generics.ListCreateAPIView): """Retrieves all Users""" serializer_class = UserSerializer authentication_classes = (authentication.Toke
delete
请求时能够从数据库中删除用户
以下是我的看法:
class RetrieveUsersView(generics.ListCreateAPIView):
"""Retrieves all Users"""
serializer_class = UserSerializer
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
queryset = get_user_model().objects.all()
这是我的序列化程序:
class UserSerializer(serializers.ModelSerializer):
"""Serializer for the users object"""
class Meta:
model = get_user_model()
fields = ('email', 'password', 'name')
extra_kwargs = {'password': {'write_only': True, 'min_length': 5}}
def create(self, validated_data):
"""Create a new user with encrypted password and return it"""
return get_user_model().objects.create_user(**validated_data)
def update(self, instance, validated_data):
"""Update a user, setting the password correctly and return it"""
password = validated_data.pop('password', None)
user = super().update(instance, validated_data)
if password:
user.set_password(password)
user.save()
return user
以下是我的网址:
urlpatterns = [
path('create/', views.CreateUserView.as_view(), name='create'),
path('token/', views.CreateTokenView.as_view(), name='token'),
path('me/', views.ManageUserView.as_view(), name='me'),
path('all_users/', views.RetrieveUsersView.as_view(), name='all_users')
]
据我所知,Django rest内置了允许DELETE
请求的类。但是,当我在本地主机上查看api时,我只能根据我的RetrieveUsersView
类查看所有注册用户
我希望url是这样的
/api/users/all_users/1
然后删除该用户。对于如何获得该功能,我有点困惑。您可以使用,它允许您轻松地执行删除操作
为此,创建一个新的视图类,如下所示:
class DeleteUserAPI(generics.DestroyAPIView):
serializer_class = UserSerializer
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
queryset = get_user_model().objects.all()
或者,也可以使用“太”来删除对象
urlpatterns = [
path('delete-user/<int:pk>/', views.DeleteUserAPI.as_view(), name='delete-user'),
# rest of your config
path('create/', views.CreateUserView.as_view(), name='create'),
path('token/', views.CreateTokenView.as_view(), name='token'),
path('me/', views.ManageUserView.as_view(), name='me'),
path('all_users/', views.RetrieveUsersView.as_view(), name='all_users')
]