在使用带有django-rest-framework的SessionAuthentication时如何禁用导入authtoken.models?

时间:2013-03-01 14:39:20

标签: django-models django-rest-framework

在我的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似乎可以解决问题)

1 个答案:

答案 0 :(得分:1)

这是根本原因......

https://code.djangoproject.com/ticket/19422

在此期间会解决一个变通方法,这可能只涉及确保Token无法导入到任何位置,除非rest_framework.authtoken位于INSTALLED_APPS