【发布时间】:2013-12-22 11:49:56
【问题描述】:
我在使用 Django-Tastypie 制作的 API 中创建了一个资源,该资源基于作为 url 参数提供的哈希值返回单个对象。到目前为止,一切都按预期工作,但资源不是只返回一个 JSON 对象,而是返回一个带有单个对象的数组。因为我想将资源连接到 Backbone-Model,所以只有对象会更方便。
资源:
class ObjectResource(CommonResource):
class Meta(CommonResource.Meta):
queryset = ObjectModel.objects.all()
resource_name = 'object'
allowed_methods = ['get']
authorization = Authorization()
def obj_create(self, bundle, **kwargs):
return super(ObjectResource, self).obj_create(bundle, hash_value=self.hash_value)
def authorized_read_list(self, object_list, bundle):
return object_list.filter(hash_value=self.hash_value)
Json 响应
[{"app_enabled": false, "enable_global_note": false, "enable_guest_order_notes": true, "enable_guest_orders": false, "enable_in_house": false, "guest_orders_active": false, "hash_value": "33d96c3c094b54dd918407c3ef79b219", "id": 34, "name": "Spätzlerei", "resource_uri": "", "slug": "spaetzlerei", "state": 0, "time_added": "2013-08-01T20:11:34.689550", "time_modified": "2013-08-06T10:37:01.907677", "vendor": "myorderbird"}]
需要 Json 响应:
{"app_enabled": false, "enable_global_note": false, "enable_guest_order_notes": true, "enable_guest_orders": false, "enable_in_house": false, "guest_orders_active": false, "hash_value": "33d96c3c094b54dd918407c3ef79b219", "id": 34, "name": "Spätzlerei", "resource_uri": "", "slug": "spaetzlerei", "state": 0, "time_added": "2013-08-01T20:11:34.689550", "time_modified": "2013-08-06T10:37:01.907677", "vendor": "myorderbird"}
任何关于如何实现这一点的指针将不胜感激。
【问题讨论】:
-
既然你只想返回一个对象,你为什么要
_list方法?也许看看替换_detail的东西(和resource_uri_kwargs...)
标签: django json backbone.js tastypie