【发布时间】:2018-02-12 00:11:19
【问题描述】:
如果用户已经存在,是否可以返回或创建令牌? 我需要这样的东西
class LoginEasy(CreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
def post(self, request):
pw = '!Rd5tkis-02kjWk'
serialized = UserSerializer(data=request.data)
if serialized.is_valid():
u = User.objects.filter(email=serialized.data['email'])
if len(u) > 0:
userdata= {'id': u[0].id, 'password': pw, 'first_name': u[0].first_name, 'last_name': u[0].last_name, 'email': u[0].email},
token, created = Token.objects.get_or_create(user=userdata)
return Response({'token': token.key,
'id': userdata.id,
'first_name': userdata.first_name,
'last_name': userdata.last_name,
'email': userdata.email})
我收到此错误。
int() 参数必须是字符串、类似字节的对象或数字,而不是 'dict'
【问题讨论】:
-
Token 模型定义是什么样的?从字典中获取属性也不会像您实现它的方式那样工作。例如,可以通过 userdata['first_name'] 访问 first_name
-
嗨,我想我解决了这个问题...我使用了 user = User.objects.get(username=serialized.data['email']) 而不是 user = User.objects.filter( username=serialized.data['email']) 但感谢您的帮助
标签: python django django-rest-framework access-token