2

在我的 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 的模型,即使不需要它们?

有没有办法在不包含 authtoken.models 的情况下使用 SessionAuthentication?

难道我做错了什么?

(从 rest_framework/authentication.py 中完全删除 authtoken.models.Token 似乎可以解决问题)

4

1 回答 1

1

这是根本原因...

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

同时将整理出一个解决方法,这可能只涉及确保Token不会在任何地方导入,除非rest_framework.authtokenINSTALLED_APPS.

于 2013-03-06T17:51:02.953 回答