我设置了Django Tastypie API。
我想查询数据库中与名称匹配的对象的数量。
这是否可以在现有模型资源上实现,还是需要设置新资源来处理这种特定情况? (这些数据通常在结果的元数据部分返回?是否只有一个选项可以从参数中返回?)
所以,如果我的网址通常是这样的:
http://127.0.0.1:8000/api/v1/library/?name__icontains=ABC
我可以添加参数或更改网址,以便它只返回元数据(我只想返回名称中包含“ABC”的库的数量)而不是所有对象吗?
答案 0 :(得分:7)
您可以传入get参数:
http://127.0.0.1:8000/api/v1/library/?name__icontains=ABC&meta_only=true
并将此方法添加到您的资源中:
def alter_list_data_to_serialize(self, request, data):
if request.GET.get('meta_only'):
return {'meta': data['meta']}
return data
文档:http://django-tastypie.readthedocs.org/en/latest/resources.html#alter-list-data-to-serialize