2012-10-22 39 views
0

我是Tastypie的新手,很快就能實現CRUD操作。但是我想實現其他類型的Web服務,其返回值不是模型。舉例來說,如果我有這樣的沒有與Django/Tastypie的CRUD操作

class User(models.Model): 
    name = models.CharField(max_length=20) 
    age = models.PositiveSmallIntegerField() 

一個簡單的模型,並希望得到通過/ API/V1 /用戶/ avg_age,我應該怎麼做這一切用戶的平均年齡?也許這與Django網址相關的東西比Tastypie更多,但我現在迷失了。所以,問題是我應該在哪裏/如何定義自定義REST Web服務? 在此先感謝

回答

0

您可以將該方法添加到模型本身或將其放入service layer。完成後,您可以使用dehydration週期輕鬆地將該值添加到資源中。

另一個允許對該值進行過濾的選項是實現一個保存該數據的模型,例如,一個UserStatistics模型。然後,您可以添加外鍵關係或創建獨立資源。

由於數據不會發生很大變化,而且這些計算更昂貴我建議您爲這樣的模型創建一個cronjob或任務,僅定期執行數據庫寫操作