2015-06-21 93 views
0

我不確定這是否可能,因爲廣泛的搜索沒有給我提供任何信息。或者我可能會搜索錯誤的條款。Django Rest Framework僅適用於Django應用程序內的某些應用程序

現在我有我的Django的應用程序中的一些應用程序如下:

--AppOne 
--AppTwo 
--ExtendedAdmin 
manage.py 

現在,AppOneAppTwo使用Django的REST框架及其相關令牌身份驗證機制。對於extendedAdmin,我想使用本地Django Auth或甚至DRF的SessionAuth,因爲我試圖在應用程序中添加一個相當廣泛的管理面板。我一直無法找到一種令人滿意的方式來定製Django Rest Framework,使其僅用於某些應用程序的認證機制。有沒有辦法做到這一點?如果不是,我應該做什麼不同?

回答

1

到目前爲止,我知道你不能。因爲django rest框架攔截了url,然後執行它自己的令牌驗證邏輯。但有些解決方案可以用來保留會話和令牌認證。

我用這對我的所有項目 -

  1. 我保持會話認證爲將用於正常瀏覽
  2. 訪問的所有網址,我用api網址Django的REST框架與/api前綴我的API網址

例如 -

的基於會話的登錄是http://<host>/account/login 和TokenBased登錄是在http://<host>/api/account/login

,最簡單的方法,使Django的REST框架前綴的網址是利用Routers - http://www.django-rest-framework.org/api-guide/routers/#defaultrouter

示例 -

class UserViewSet(ModelViewSet): # just a sample view set 
... 

router = routers.SimpleRouter() 
router.register(r'api/users', UserViewSet) 
+0

在這,究竟是什麼'UserViewSet' ? – Newtt

+0

只是一個示例視圖集 –

相關問題