我有以下资源,我正在尝试将一个网址添加到api并获取制造商资源的所有俱乐部。目前,我只是试图得到所有俱乐部的回复(注意我只是做了一个objects.all(),因为我此时只想要数据,我稍后会过滤它)。我的问题是,当我点击网址时,我确实得到了俱乐部,但是,它们不是json格式,结果如下:
"[<Club: Club object>, <Club: Club object>]"
我需要添加到create_response中,以便它返回json格式的对象以便可以使用它 - 基本上,它可以将对象吹掉而不是将它们保留为
"[<Club: Club object>]"
这是俱乐部的样子:
{
"_id" : "5275b295fa57952e260243e5|Fairway|1",
"manufacturer" : "Adams",
"head_material" : null,
"image_url" : "https://blah.com",
"year" : "0",
"name" : "Tight Lies GT Xtreme Offset",
"url" : "http://blah.com"
}
这是资源:
class ManufacturerResource(resources.MongoEngineResource):
class Meta:
queryset = documents.Manufacturer.objects.all().order_by('id')
allowed_methods = ('get')
resource_name = 'manufacturers'
include_resource_uri = False
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<pk>[\w\d_.-]+)/drivers/$" % self._meta.resource_name, self.wrap_view('get_manufacturer_drivers'), name="api_get_manufacturer_drivers"),
]
def get_manufacturer_drivers(self, request, **kwargs):
drivers = documents.Club.objects.all().order_by('id')
return self.create_response(request, drivers)
答案 0 :(得分:0)
我在挖掘和挖掘后最终搞清楚这一点。我找不到任何内置的东西。我所做的是使用一些静态方法创建了一个HelperMethod类。这是我想出来的:
class HelperMethods:
@staticmethod
def obj_to_dict(object):
return_data = {}
for property, value in vars(object).iteritems():
return_data[property] = value
return return_data['_data']
@staticmethod
def obj_to_list(objects):
return_data = []
for object in objects:
return_data.append(HelperMethods.obj_to_dict(object))
return return_data
用法:
return self.create_response(request, HelperMethods.obj_to_list(drivers))
希望这有助于某人。