在我的rest_framework设置中,我将SessionAuthentication设置为默认身份验证类
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
)
问题是我的User DELETE api视图试图在authtoken_token表上崩溃删除,这个表不存在(因为我不需要它),引发数据库异常。
具体来说,当在DestroyModelMixin.destroy中调用obj.delete()时,会引发此异常:
DatabaseError: relation "authtoken_token" does not exist
LINE 1: ...oken"."user_id", "authtoken_token"."created" FROM "authtoken...
是否需要syncdb rest_framework的模型,即使它们不需要它们?
有没有办法使用SessionAuthentication而不包括authtoken.models?
我做错了吗?
(从rest_framework / authentication.py中完全删除authtoken.models.Token似乎可以解决问题)
答案 0 :(得分:1)
这是根本原因......
https://code.djangoproject.com/ticket/19422
在此期间会解决一个变通方法,这可能只涉及确保Token
无法导入到任何位置,除非rest_framework.authtoken
位于INSTALLED_APPS
。