gpt4 book ai didi

python - tastypie POST 方法返回字典键错误但值为空

转载 作者:行者123 更新时间:2023-12-01 05:27:06 25 4
gpt4 key购买 nike

我有一个关于 django tastypie 的问题,我想将数据 POST 到 api,但它返回 400,并且错误消息为空 我的资源是非 orm,所以我重写 obj_create 方法 但 GET 方法效果很好。 这是我的代码

class DitcObject(object):

def __init__(self, initial=None):
self.__dict__['_data'] = {}

if hasattr(initial, 'items'):
self.__dict__['_data'] = initial

def __getattr__(self, item):
return self._data.get(item, None)

def __setattr__(self, key, value):
self.__dict__['_data'][key] = value

def to_dict(self):
return self._data

class QueueResource(Resource):

qid = fields.CharField(attribute='qid')
queue = fields.CharField(attribute='queue')

class Meta:
resource_name = 'queue'
object_class = DitcObject
authorization = Authorization()

def _client(self):
return RedisTool().get_redis()

def detail_uri_kwargs(self, bundle_or_obj):
kwargs = {}

if isinstance(bundle_or_obj, Bundle):
kwargs['pk'] = bundle_or_obj.obj.qid
else:
kwargs['pk'] = bundle_or_obj.qid

return kwargs

def get_object_list(self, request):
queues = filter(lambda item:re.match(r'%s_update_plan\..+\..+' % PRO_FLAG, item), self._client().keys())
results = []

for result in queues:
new_obj = DitcObject(initial={'queue': list(self._client().smembers(result))})
new_obj.qid = result
results.append(new_obj)

return results

def obj_get_list(self, bundle, **kwargs):
qid = bundle.request.GET.get('qid')
if qid:
return [obj for obj in self.get_object_list(bundle.request) if obj.qid == qid]
return self.get_object_list(bundle.request)

def obj_get(self, bundle, **kwargs):
queue = self._client().smembers(kwargs['pk'])

return DitcObject(initial={'queue': list(queue), 'qid': kwargs['pk']})

def obj_create(self, bundle, **kwargs):
bundle = self.full_hydrate(bundle)
print kwargs
return bundle

这是我的错误返回

HTTP/1.0 400 BAD REQUEST
Date: Tue, 14 Jan 2014 09:20:35 GMT
Server: WSGIServer/0.1 Python/2.7.3
Content-Type: application/json

{"error": ""}

谢谢大家!

最佳答案

很有可能您正在 POST 处理 JSON 数据,并且忘记了用双引号 " 将 JSON 数据的键引起来。

这是我刚开始使用 TastyPie 时就面临的一件事。

关于python - tastypie POST 方法返回字典键错误但值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110000/

25 4 0
文章推荐: jquery - 为什么 Meteor 1.4 加载 jQuery 1.11.2?
文章推荐: azure - 10 月 Azure SDK 在插入带有尾随空格的字符串时损坏
文章推荐: javascript - jQuery Joyride 无法在可滚动
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com