2012-04-21 113 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