2

它在开发过程中在我的本地主机上运行良好,但是当我将它部署在服务器上时,我收到一个空请求。

class MyPinResource(Resource):
    pin = fields.CharField(attribute='pin', null=True)

    class Meta:
        resource_name = 'my-pin'
        authentication = ApiKeyAuthentication()
        authorization = DjangoAuthorization()
        always_return_data = True
        include_resource_uri = False
        object_class = ApiObject
        allowed_methods = ['post']

    def detail_uri_kwargs(self, bundle_or_obj):
        if isinstance(bundle_or_obj, Bundle):
            return { 'domain': bundle_or_obj.obj }
        else:
            return { 'domain': bundle_or_obj }


    def obj_create(self, bundle, request=None, **kwargs):
        site_id = None
        if 'site_id' in request.GET and request.GET['site_id']:
            site_id = request.GET['site_id']
        else:
            LOG.error('site_id is required!')
            raise Exception

"error_message": "'NoneType' 对象没有属性 'GET'"

AttributeError:“NoneType”对象没有属性“GET”

当调用 request.GET 时,此错误在 obj_create 内部

有什么问题?是否可以有一个空请求?帮助将不胜感激:)

4

3 回答 3

2

正如我在评论中所写,问题可能出在版本上,请查看此 github问题。如果您使用的是 0.9.12,则可以访问request中的。bundle

于 2013-02-21T23:59:30.977 回答
0

当前从 pip 安装的 sweetpie 版本是 0.9.12。在这个版本中 obj_create 得到 2 个参数:

def obj_create(self, bundle, **kwargs):

代替:

def obj_create(self, bundle, request=None, **kwargs):

在早期版本中。

现在您可以使用 bundle.request 从 bundle 中获取请求。

于 2013-02-21T23:32:42.430 回答
0

您可以通过 bundle.request 访问请求对象,如此处文档中所述

于 2013-02-21T23:26:01.247 回答