为什么我不能通过pk或id来object.get()一个Django用户?

羽衣甘蓝

我正在尝试连接一个API端点,以允许管理员通过一个简单的,无主体的PATCH命令来禁用用户。但是,由于某种原因,我的视图get_queryset()总是返回404:

from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User
from .serializers import UserSerializer

# Disable a User
class DisableCompanyUserView(UpdateAPIView):
    model = User
    serializer_class = UserSerializer
    lookup_url_kwarg = 'user_id'

    def get_queryset(self):
        print(str(self.kwargs)) # returns {'user_id': '12'}
        return get_object_or_404(User, pk=self.kwargs[self.lookup_url_kwarg])
    ---snip---

我以为可能是类型不匹配(即self.kwargs ['user_id']返回的是字符串而不是int),但是我尝试通过输入12上述返回值(显然是整数)来查找User,并且仍然返回了404。我还删除了快捷方式函数调用,手动进行了查找,仍然返回了404:

try:
    return User.objects.get(pk=self.kwargs[self.lookup_url_kwarg])
    # return User.objects.get(pk=12) # also returns a 404
except User.DoesNotExist:
    raise Http404()

我期待在原始auth_user现在表,那里面有一条记录与id12,所以我知道该用户存在。我究竟做错了什么?

羽衣甘蓝

tgdn帮助我意识到我做的事情确实很愚蠢:我试图过滤get_queryset()应该返回所有用户的特定用户。

我能够使事情像这样工作:

# Update a User
class DisableCompanyUserView(UpdateAPIView):
    model = User
    serializer_class = UserSerializer
    lookup_url_kwarg = 'user_id'

    def get_queryset(self):
        return User.objects.all()

    def partial_update(self, request, *args, **kwargs):
        kwargs['partial'] = True
        return self.update(request, *args, **kwargs)

我将其简化为:

# Update a User
class DisableCompanyUserView(UpdateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    lookup_url_kwarg = 'user_id'

    def partial_update(self, request, *args, **kwargs):
        kwargs['partial'] = True
        return self.update(request, *args, **kwargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在Java中我们不能通过一个扫描器对象获取用户输入的int和string?

来自分类Dev

为什么不能通过 Object.assign() 将原型合并到另一个对象?

来自分类Dev

为什么我不能通过以下方式将strcpy()与strtok()一起使用

来自分类Dev

为什么匿名用户不能通过ftp删除文件?

来自分类Dev

Django的CSRF为什么不能通过HTTPS工作?

来自分类Dev

Django的CSRF为什么不能通过HTTPS工作?

来自分类Dev

为什么不能通过在用户设置文件中添加“ update_check”:false来关闭Sublime 3更新通知?

来自分类Dev

为什么我不能通过第 11 行的赋值语句将第 0 个索引处的字符替换为第 1 个索引处的字符?

来自分类Dev

为什么不能通过唯一键访问Java ArrayList?

来自分类Dev

为什么CheckBox不能通过编程方式与Kotlin一起使用?

来自分类Dev

为什么我不能分配一个函数指针变量来指向一个特定的函数。错误如下

来自分类Dev

为什么我不能使用ssh-key与一个用户登录,而不能与另一个用户登录?

来自分类Dev

为什么我不能使用ssh-key与一个用户登录,而不能与另一个用户登录?

来自分类Dev

在jsxgraph中,为什么不能通过同一平面上的五个点绘制抛物线?

来自分类Dev

为什么我的函数不能调整我的指针的内容,除非我返回一个来分配它

来自分类Dev

如何在 django 中创建一个可以创建另一个用户但不能授予权限(仅授予预定义组权限)的用户?

来自分类Dev

为什么不能添加其他用户?只允许一个用户注册

来自分类Dev

Django 如何通过用户名访问另一个对象?

来自分类Dev

如何在Django中使用ListView获取另一个用户的object_list?

来自分类Dev

为什么我不能通过单击获取请求来调用函数?

来自分类Dev

为什么我需要一个专门的用户来提供服务(我的git服务:gogs / gitea)?

来自分类Dev

为什么不能通过传入指针来创建整数?

来自分类Dev

为什么我不能约束一个概念

来自分类Dev

为什么我不能pgrep一个进程?

来自分类Dev

为什么我不能创建一个新分区?

来自分类Dev

为什么我不能创建一个Maven项目?

来自分类Dev

为什么我不能多次导入一个变量?

来自分类Dev

如何确保用户不会删除我的网站中的另一个用户对象[Django]

来自分类Dev

为什么我不能为计算机上的另一个用户重设密码?

Related 相关文章

  1. 1

    为什么在Java中我们不能通过一个扫描器对象获取用户输入的int和string?

  2. 2

    为什么不能通过 Object.assign() 将原型合并到另一个对象?

  3. 3

    为什么我不能通过以下方式将strcpy()与strtok()一起使用

  4. 4

    为什么匿名用户不能通过ftp删除文件?

  5. 5

    Django的CSRF为什么不能通过HTTPS工作?

  6. 6

    Django的CSRF为什么不能通过HTTPS工作?

  7. 7

    为什么不能通过在用户设置文件中添加“ update_check”:false来关闭Sublime 3更新通知?

  8. 8

    为什么我不能通过第 11 行的赋值语句将第 0 个索引处的字符替换为第 1 个索引处的字符?

  9. 9

    为什么不能通过唯一键访问Java ArrayList?

  10. 10

    为什么CheckBox不能通过编程方式与Kotlin一起使用?

  11. 11

    为什么我不能分配一个函数指针变量来指向一个特定的函数。错误如下

  12. 12

    为什么我不能使用ssh-key与一个用户登录,而不能与另一个用户登录?

  13. 13

    为什么我不能使用ssh-key与一个用户登录,而不能与另一个用户登录?

  14. 14

    在jsxgraph中,为什么不能通过同一平面上的五个点绘制抛物线?

  15. 15

    为什么我的函数不能调整我的指针的内容,除非我返回一个来分配它

  16. 16

    如何在 django 中创建一个可以创建另一个用户但不能授予权限(仅授予预定义组权限)的用户?

  17. 17

    为什么不能添加其他用户?只允许一个用户注册

  18. 18

    Django 如何通过用户名访问另一个对象?

  19. 19

    如何在Django中使用ListView获取另一个用户的object_list?

  20. 20

    为什么我不能通过单击获取请求来调用函数?

  21. 21

    为什么我需要一个专门的用户来提供服务(我的git服务:gogs / gitea)?

  22. 22

    为什么不能通过传入指针来创建整数?

  23. 23

    为什么我不能约束一个概念

  24. 24

    为什么我不能pgrep一个进程?

  25. 25

    为什么我不能创建一个新分区?

  26. 26

    为什么我不能创建一个Maven项目?

  27. 27

    为什么我不能多次导入一个变量?

  28. 28

    如何确保用户不会删除我的网站中的另一个用户对象[Django]

  29. 29

    为什么我不能为计算机上的另一个用户重设密码?

热门标签

归档