在我rest_framework設置我設置SessionAuthentication作爲默認的認證類如何禁用導入authtoken.models時使用SessionAuthentication與django-rest-framework?
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
)
的問題是,我的用戶刪除API視圖試圖瓦解刪除的authtoken_token表,它不存在(因爲我不需要它),引發數據庫異常。
具體而言,當obj.delete()在DestroyModelMixin.destroy被調用時,拋出此異常:
DatabaseError: relation "authtoken_token" does not exist
LINE 1: ...oken"."user_id", "authtoken_token"."created" FROM "authtoken...
是執行syncdb rest_framework的車型需要一個,即使一個並不需要它們?
有沒有辦法使用SessionAuthentication而不包括authtoken.models?
我做錯了什麼?
(除去authtoken.models.Token完全rest_framework/authentication.py似乎解決了問題)
不,你不需要'syncdb',除非你在'INSTALLED_APPS'設置中明確地安裝了'rest_framework.authtoken'。 你有沒有在你的'INSTALLED_APPS'中意外得到這個,或者你是否無意中創建了一個ForeignKey或其他關係?什麼是完整的追溯? – 2013-03-01 15:18:06
我沒有明確地在我的INSTALLED_APPS(僅rest_framework)中安裝rest_framework.authtoken。但是我開始懷疑在我們相當複雜的django項目的背景下發生了一些自動化的事情。有關如何調試的任何想法?以下是從DestroyModelMixin開始的回溯:https://gist.github.com/nejcjelovcan/5dc47eea7134e12f5d6b – 2013-03-01 15:25:38
視圖正在使用的模型的模型定義是什麼? – 2013-03-01 15:46:47