Django rest框架删除用户,但表不存在

时间:2019-11-30 10:30:11

标签: django django-rest-framework

  

表AWSIOt.User_set_user不存在

image to show error

大家好,这是我的第一篇文章。 我试图通过使用user.delete()删除用户。但是,它没有从表auth_user中找到用户。 它从project.appname_user寻找用户。我没有在应用程序中创建模型用户,而是在视图文件顶部写入了“ from django.contrib.auth.models import User”。 这是我的全部代码

from django.contrib.auth.models import User

from .head import *


class UserDeleteView(APIView):

    def get(self, request):
        try:
            user_id = self.request.query_params.get('user_id')
            user = User.objects.get(id=user_id)
            user.delete()
            return Response(Return_msg())
        except User.DoesNotExist:
            return Response(Return_msg(None, True, 'Failed, user does not exist!!!'))

所以,我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

坦白。您的错误可能与您使用通配符导入from .head import *的事实有关。这可能会导致与User的名称空间冲突。

我建议您考虑使用delete中的APIView方法作为以下代码段:

views.py

from django.contrib.auth.models import User
from rest_framework.response import Response
from rest_framework import status
from django.http import Http404


class UserDetailsView(APIView):

    def get_object(self, pk):
        try:
            return User.objects.get(pk=pk)
        except User.DoesNotExist:
            raise Http404

    def delete(self, request, pk, format=None):
        user = self.get_object(pk)
        user.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("user/<int:pk>/", views.UserDetailsView.as_view(), name="details_user"),
]