django Piston:如何在处理程序中定义自定义方法?

时间:2012-04-21 21:29:55

标签: django django-piston

我创建了一个handler.py并想编写一个方法:getBooksForUser()。此方法将返回用户发出的所有书籍。 文档说:

  

除此之外,您还可以定义所需的任何其他方法。您   可以通过在fields指令中包含它们的名称来使用它们   这样做,将使用单个参数调用该函数:   模型的实例。它可以返回任何东西,然后返回   value将用作该键的值。

在字段中,我已经写了我想要返回的书籍的属性。我应该只在这里包含方法名称(getBooksForUser)吗?

如果可能,请给我一个代码示例。

1 个答案:

答案 0 :(得分:1)

我知道这不会回答有关自定义方法的问题,但可能有助于解决您的问题。

网址:

(r'^books\.json$', Resource(BookHandler)),
(r'^books/(?P<user_id>[0-9]+)\.json$', Resource(BookHandler)),

处理程序:

   from piston.handler import BaseHandler
   from myapp.models import Book

   class BookHandler(BaseHandler):
      allowed_methods = ('GET',)
      model = Book   

      def read(self, request, user_id=None):
          base = Book.objects
          if user_id:
              return base.filter(user_id=user_id)
          return base.all()

我从文档here获得了示例: