2014-03-30 113 views
0

我想在Tastypie定製授權中獲得kwargs。我必須授權用戶是否有權訪問URL kwargs中的id在Tastypie定製授權中獲取kwargs

授權方法似乎沒有通過kwargs,但只通過bundleobject_list

+0

不知道爲什麼你需要kwargs來做你想做的事情。你能解釋更多嗎? –

+0

@DavidW。我正在使用嵌套的資源api。並且只需要在URL中傳遞的id來檢查用戶是否具有對該資源的授權訪問權限。 – Bharathwaaj

回答

2

正如您所說,自定義授權在簽名中沒有** kwargs。 但是,您可以使用bundle.request訪問URL參數(如id)。

這種例子的波紋管應該工作:

class RestrictedIdAuthorization(Authorization): 
    def read_detail(self, object_list, bundle): 
     param_id = bundle.request.GET['id'] 
     accepted_ids = [42, 54, 67] # Must be changed, of course. 
     return param_id in accepted_ids 

你可以去看一下this post有另一個例子。

+0

非常感謝。這工作! :) – Bharathwaaj