2013-03-30 115 views
0

我是Django的新手,我正在尋找一種方法,使基於類的視圖可以通過類中的多個方法響應GET,POST,PUT和DELETE。例如基於類視圖的Django簡單REST

  • 指數#獲取
  • 秀#獲取
  • 新#獲取
  • 編輯#獲取
  • 創建#POST
  • 更新#PUT
  • 刪除#DELETE

我的主要原因是在一個班級中組織我的代碼。目前我正在使用一個類來處理新的和創建的動作,而另一個來處理編輯和更新動作。這感覺有點笨重。

我已經使用了Spring,Symfony,Rails,並且它們都提供了一個簡單的方法來完成此操作。 Django似乎有很多選項(tastypie,rest-framework),但我看不出任何支持這一點的東西。有什麼辦法可以支持嗎?

在此先感謝。

回答

0

我並不完全肯定,但我認爲你將REST術語與「在一個類中處理不同類型的請求」混合在一起。 rest-framework和Tastypie將支持的是資源定義,序列化和反序列化,django模型和django模型的管道,以及標準化的API到您的資源。

另一方面,僅使用django class-based views就可以得到你需要的答案:在由X,Y,Z mixins組成的單個類中指定不同類型的請求,並指向一個單一的URL,使它完全「休息」。

使用單個CBV似乎是一個好主意,但請記住,隨着視圖變得越來越複雜,原始笨重肯定會以更加耦合的方式重新出現。

編輯:也許django-extra-views可以幫助你以某種方式。

+0

感謝您的回覆。我只是想找出什麼是可能的,並學習最佳實踐。我試圖重新創建我用Spring實現的東西。例如,我將在控制器中創建7個方法,然後用註釋公開它們。泉內容談判將提供正確的序列化。但即使如果我不使用REST,我仍然喜歡使用這種方法來組織我的代碼。現在我可以看到Django提供的開箱即用視圖(BTW),或許我採用的方法是正確的,然後使用Tastypie在適當的位置展示我的模型。 – TheDude