我是一個Django初學者(儘管我在使用Sails.js + Angular的Web開發方面有經驗),所以請耐心等待。Django:過濾請求的結果,只包含與請求用戶相關的數據
我有一個現有的應用程序,它使用REST API在Sails.js後端和AngularJS前端之間進行通信。現在,我們發現後端不適合我們的用途,我們將在不久的將來換用Django。 Sails.js會自動爲控制器創建REST方法,而Django不會,所以我想我將使用Django Rest Framework之類的東西來創建API。
所以是的,我發現了大多數事情的相應功能。我還沒有找到的東西是Sails.js特性的替代品,稱爲「策略」。它們是可以在某些控制器動作的查詢上執行的功能,可以定義爲模型特定的,模型控制器特定的動作以及特定的請求類型。例如,您可以有一個「authAccess
」策略,用於檢查請求的用戶是否已通過身份驗證,並且在實際請求的控制器方法執行之前執行該策略。您也可以在將請求對象傳遞給控制器之前使用它們來修改請求對象。現在我實際的問題:
比方說,我有一個具有與其他模型中的許多一對一關係的User
模型,我們稱之爲Book
,這就意味着用戶可以擁有很多書,但一本書只能有一個所有者。 Goody很好。現在,我們有一個正在查詢查找他所有書籍的登錄用戶。他向/book
發出GET請求。我想確保返回的Book
對象被過濾,以便只返回他的書。
因此,基本上在Sails中,我能夠編寫一個策略,將請求參數更改爲{user: loggedInUser}
,從而自動篩選結果Book
結果。這很方便,因爲我可以使用相同的策略來過濾其他模型,例如DVD
或Friend
或其他。我的問題是 - 什麼是在Django中實現相同功能的最佳方式?