gpt4 book ai didi

python - django HttpResponseBadRequest 中没有内容

转载 作者:行者123 更新时间:2023-12-01 06:00:04 37 4
gpt4 key购买 nike

我正在尝试组织 django 应用程序返回的错误消息,但遇到了内容为空的 HttpResponseBadRequest 对象的子类的问题:

在views.py中:

class HttpNoContentAvailable(django.http.HttpResponseBadRequest):
content = "Must add content before making this request."

def get_content(request, project_id):
project = Project.objects.get(pk=project_id)
if not project.has_content():
return HttpNoContentAvailable()
...

它的工作原理如下:

def get_content(request, project_id):
project = Project.objects.get(pk=project_id)
if not project.has_content():
return HttpNoContentAvailable("Must add content before making this request.")
...

在我的应用程序中,有许多 View 需要根据是否有内容返回相同的 400 响应,并且我希望将响应内容存储在一个位置。为了让事情变得更“有趣”,我在开发服务器上运行的单元测试通过了——我得到了包含正确内容的 HTTP 400 响应,但在生产环境中运行时,我得到了没有内容的 HTTP 400 响应。

如何获得 HTTP 400 响应以获得正确的内容? (或者,更一般地说,您建议我如何组织代码来实现只存储一次响应内容的目标?)

最佳答案

您应该重写子类中的构造函数,而不是将内容定义为类变量。

例如:

 def __init__(self):
super(django.http.HttpResponseBadRequest, self).__init__("Must add content before making this request.")

关于python - django HttpResponseBadRequest 中没有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887760/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com