Tastypie Django,自定义视图与prepend_url

时间:2016-03-27 14:46:47

标签: django tastypie

我正在尝试为我的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的替代方案?或者有更好的方法来制作自定义视图吗?

1 个答案:

答案 0 :(得分:1)

尝试改为覆盖obj_get_listhttps://github.com/django-tastypie/django-tastypie/blob/master/tastypie/resources.py#L2124

您希望account_id关闭kwargs并按此过滤。

另外,请勿过滤默认obj_get_list方法的结果,执行任何过滤后,您需要{em} 出于安全考虑。