我正在尝试为我的REST界面创建一个自定义端点,但是有一些问题..希望有人可以帮助我;)
我想创建资源的自定义视图,但我仍然需要默认的分页功能。
class ShareResource(ModelResource):
.....
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/dialog/(?P<account_id>\w[\w/-]*)%s$" % (self._meta.resource_name, trailing_slash()), self.wrap_view('dialog'), name="api_dialog"),
]
def dialog(self, request, **kwargs):
self.method_check(request, allowed=['get'])
self.is_authenticated(request)
account_id = kwargs['account_id']
shares = Share.objects.filter(
Q(account=request.user.account, post__account__id=account_id) |
Q(post__account=request.user.account, account=account_id)
).order_by("-created")
raise Exception(shares)
return self.get_list(request, objects=shares)
我的问题在于&#34; get_list&#34; ..是否有一个将对象变为arg的替代方案?或者有更好的方法来制作自定义视图吗?
答案 0 :(得分:1)
尝试改为覆盖obj_get_list
:https://github.com/django-tastypie/django-tastypie/blob/master/tastypie/resources.py#L2124
您希望account_id
关闭kwargs
并按此过滤。
另外,请勿过滤默认obj_get_list
方法的结果,执行任何过滤后,您需要{em} 出于安全考虑。