Tastypie Django,带有 prepend_url 的自定义视图

Tastypie Django, Custom view with prepend_url

我正在尝试为我的 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)

我的问题是函数 "get_list" .. 是否有将对象作为 arg 的替代方法?还是有更好的方法来制作自定义视图?

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

您需要将 account_id 关闭 kwargs 并按此过滤。

此外,不要只过滤默认 obj_get_list 方法的结果,您需要 authorized_read_list 之后 调用任何过滤出于安全原因执行。