我試圖做一個自定義的驗證類作爲使用Django的REST框架我的Django項目的默認身份驗證類(我在views.py
文件中它的定義)。雖然我不確定這是否可行,但能夠做到這一點似乎是合乎邏輯的。自定義身份驗證類爲DEFAULT_AUTHENTICATION_CLASSES?
而且我知道通過在視圖中使用@authentication_classes
裝飾這種情況的解決方法。但是一遍又一遍地重複同樣的事情似乎不合邏輯。 official API GUIDE也沒有提到它。如果你們中的任何一個遇到過這樣的情況,並且知道解決方案,我希望能夠被闡明。
REST_FRAMEWORK = {
.
.
DEFAULT_AUTHENTICATION_CLASSES: (
'appname.views.CustomAuthentication',
),
.
.
}
Could not import 'appname.views.CustomAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: cannot import name views.
感謝
正如您在問題中所看到的,那就是我所做的。除了我沒有在我的應用程序下創建'utils'包。我想在我的'views.py'本身創建Authentication類。我不明白爲什麼這不起作用。此外,你可以檢查我的答案/解決方法。順便說一句,你的意思是使用'myapp'而不是'myproj'? – Kshitij
我的意思是說從項目根目錄添加完整的路徑。 – prateek
假設裏面有一個名爲'myproj'的項目和一個名爲'myapp'的應用程序。所以,基本上你說的是引用'authentication.py'文件中的'CustomAuthentication'類,比如'myproj.myapp.authentication.CustomAuthentication'?我沒有提到項目名稱是必要的,因爲'myapp'已經在設置文件的INSTALLED_APPS中。 – Kshitij