django类型对象Http404没有属性get

ela*_*ver 20 python django

我有这个代码:

if not selected_organization in request.user.organizations.all():
        return Http404
Run Code Online (Sandbox Code Playgroud)

在返回http 404时我得到了这个:

type object 'Http404' has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)

ela*_*ver 69

我花了一段时间才弄明白,

最终我不得不这样raiseHttp404而不是return它!

  • 谢谢你让我免于在屏幕上撞头。 (5认同)
  • 哈哈,看来很多人都归这一个 (4认同)
  • 谢谢你!我也返回了 Http404,但没有意识到这是一个异常,哈哈。 (2认同)

小智 7

返回 Http404() ==> 是错误的

raise Http404() ==> 是正确的

((在_示例代码下))

def room_detail(request, pk):
    try:
        room = models.Room.objects.get(pk=pk)        
        return render(request, "rooms/detail.html", {"room": room})
    except models.Room.DoesNotExist:
        raiseHttp404()
Run Code Online (Sandbox Code Playgroud)

  • 请在代码中添加格式,它可以帮助其他人轻松理解和区分代码片段 (2认同)