我的资源代码是
class MessageResource(ModelResource):
class Meta:
queryset = Message.objects.all()
resource_name = "message"
always_return_data = True
authentication = ApiKeyAuthentication()
authorization = Authorization()
def determine_format(self, request):
return "application/json"
如果我收到没有任何身份验证信息的消息资源,则响应为
401 UNAUTHORIZED
"Content-Type" = "text/html; charset=utf-8";
Date = "Mon, 19 Nov 2012 15:36:28 GMT";
Server = "WSGIServer/0.1 Python/2.7.2";
而不是html,我想获得JSON响应。实际上,我想知道如何指定tastypie只在任何情况下发回JSON响应?
我想获得像
这样的JSON响应 { "code": "401", "message": "Unauthorized" }
有没有办法实现它?
答案 0 :(得分:0)
这是有效的HTTP响应。没有指定任何JSON 401响应,并且不需要tastypie来提供任何默认响应。
如果您有这样的需求,只需使用适当的中间件包装您的API。
更新:如何设置中间件
Fisrt,请仔细阅读middleware documentation。
然后,我认为您需要在新的中间件类上实现process_response
方法,并根据其status code执行响应所需的任何操作。
不要忘记将中间件类添加到settings.MIDDLEWARE_CLASSES
。
答案 1 :(得分:0)
或者您可以在settings
文件中执行TASTYPIE_DEFAULT_FORMATS = ['json']
。