【发布时间】:2014-05-05 00:17:49
【问题描述】:
当我尝试覆盖 obj_create 时,我收到一条错误消息,我不明白为什么。
代码如下:
在api.py:
class CardInfoResource(ModelResource):
linked_client = fields.ForeignKey(ClientInfoResource, 'linked_client',
blank=True, null=True, full=True)
class Meta(CommonResourceMeta):
queryset = Card.objects.all()
resource_name = 'card_infos'
fields = ['custom_pk']
list_allowed_methods = ['post']
detail_allowed_methods = ['post']
authentication = ApiKeyAuthentication()
def obj_create(self, bundle, request=None, **kwargs):
# some stuff
mydata = {'foo':'bar'}
return self.create_response(request, mydata)
当向myAPI/card_infos/ 发送POST 请求时,带有一些数据的有效负载(在上面的示例中未使用),我得到一个JSON:
- 错误消息:
NoneType' 对象没有属性 'GET'
- 回溯(我不会粘贴完整的堆栈,将错误发生在
create_response()上,负责的方法是determine_format(): if request.GET.get(\'format\'):\n\nAttributeError: \'NoneType\' object has no attribute \'GET\'\n')
错误似乎与obj_create定义中的Request=None有关,但仍然不知道如何解决。
我的目的可能看起来很奇怪,但我只想发布一些数据而不将其写入数据库。这就是为什么我调用create_response 并在覆盖的内部包含一些数据
obj_create() 方法。不确定这是一种干净的想法......
【问题讨论】:
-
发布create_response() 代码和determine_format() 方法
-
这不是我的代码。这是美味的馅饼。但我刚刚发现该错误与 obj_create 中的
"request=None"有关。但是还是不知道怎么解决 -
@DavidD。你得到答案了吗?