django-rest-auth和django-rest-knox的AttributeError-令牌序列化器

时间:2018-12-24 16:30:29

标签: django django-rest-framework django-allauth django-rest-auth

我目前正在为React前端应用设置Django后端。

作为其中的一部分,我使用django-rest-auth和django-allauth进行注册和身份验证。我想通过django-rest-knox实现更好的令牌管理。

我使用以下代码开始并使用rest-auth和allauth(有效)修改了我现有的应用程序:

https://gist.github.com/AndrewPix/cdd9276b1d5683459b965d5cc4517b26

我的问题如下:

当我将我的凭据发布到url / rest-auth / login时,在后端为具有所有属性(例如到期日期)的正确用户创建令牌,但是我没有获得令牌和用户作为API调用的一部分返回。相反,我收到以下错误:

/ pest-auth / login /

处的

AttributeError

尝试在序列化程序token上获取字段KnoxSerializer的值时出现AttributeError。 序列化程序字段的名称可能不正确,并且与str实例上的任何属性或键都不匹配。 原始异常文本为:'str'对象没有属性'token'。

任何帮助将不胜感激。我认为KnoxSerializer出了点问题,但我不知道该怎么办?

谢谢!

AM

1 个答案:

答案 0 :(得分:0)

修复程序来自网址!很简单的深夜错误。 KnoxLoginView的URL路径放在djang-rest-auth url之后,而不是之前。

通过注册URL url(r'^rest-auth/login/', views.KnoxLoginView.as_view())并包括行url(r'^rest-auth/', include('rest_auth.urls'))之前的URL,它可以工作。