2012-04-21 72 views
2

我已经创建了一个handler.py并且想要编写一个方法:getBooksForUser()。这种方法会将我的所有书籍发回给我。 该文档说:django活塞:如何在处理程序中定义自定义方法?

除了这些,你可以定义任何你想要的其他方法。你可以通过在fields指令中包含它们的名字来使用这些函数,并且通过这样做,函数将被调用一个参数:模型的 实例。它然后可以返回任何内容,并且返回 值将用作该键的值。

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

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

回答

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的例子:

+0

我喜欢这个。这种方法要好得多,因为它比django-piston建议的通过字段添加自定义方法的明确和清晰得多。感觉非常糟糕。 – 2012-11-07 22:00:07