我的意思是,我想在修改obj_create()时有JSON响应。我已经实现了UserSignUpResource(ModelResource)并且在obj_create()中,我做了一些验证,当它失败时,我引发了BadRequest()。但是,这并没有抛出JSON。它会抛弃String。
任何想法我是否可以抛弃{'错误':184,'消息':'此用户名已存在'}格式?或者我不想修改obj_create()?或者我该怎么办?
许多帮助,谢谢。
干杯, 米奇
答案 0 :(得分:2)
import json
#tastypies HttpResponse classes here...
def create_json_response(data, http_response_class):
return http_response_class(content=json.dumps(data), content_type="application/json; charset=utf-8")
然后你可以简单地说:
from tastypie.http import HttpNotFound, create_json_response
#choose HttpNotFound, HttpCreated whatever...
raise ImmediateHttpResponse(create_json_response({"error":"resource not found"}, HttpNotFound))
答案 1 :(得分:0)
您应该使用资源中的error_response方法。
类似的东西:
def obj_create(self, bundle, **kwargs):
# Code that finds Some error
my_errors = {"error": ["Some error"]}
raise ImmediateHttpResponse(response=self.error_response(bundle.request, my_errors))
通常你会调用super,错误应该来自tastypie验证过程。将自动抛出异常(错误字典保存在bundle.errors属性中)。