【问题标题】:Tastypie Django, Custom view with prepend_urlTastypie Django,带有 prepend_url 的自定义视图
【发布时间】:2016-03-27 14:46:47
【问题描述】:

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

【问题讨论】:

    标签: django tastypie


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多