我正在使用来自美味派的嵌套资源食谱模式,可以在这里找到,只是我使用的是多对多关系。
这意味着前置 url,看起来像这样:
class ParentResource(ModelResource):
children = fields.ToManyField(ChildResource, 'children')
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/childrens%s$" % (self._meta.resource_name, trailing_slash()), self.wrap_view('get_children'), name="api_get_children"),
]
def get_children(self, request, **kwargs):
#some way to get the filter
child_resource = ChildResource()
return child_resource.get_list(request, parent_id=obj.pk)
这工作正常,除了分页使用子资源的 url 而不是 prepend__urls 中的 url。IE而不是:
"meta": {
"limit": 1,
"next": "/api/parent/1/childrens?limit=1&offset=1",
"offset": 0,
"previous": null,
"total_count": 2
},
我得到:
"meta": {
"limit": 1,
"next": "/api/parent/?limit=1&offset=1",
"offset": 0,
"previous": null,
"total_count": 2
},
无论如何都无法正确显示分页网址?