[英]Return or create a token if the user already exist? django
如果用戶已經存在,是否可以返回或創建令牌? 我需要這樣的東西
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
需要正確答案,但我認為您需要
Token.objects.get_or_create(**userdata)
# ^^^^^^^^^^^
您可以使響應更加簡單:
userdata.update({'token': token.key})
return Response(userdata)
我發現了錯誤,如果這可以幫助這里的人是固定代碼。
def post(self, request):
serialized = UserSerializer(data=request.data)
if serialized.is_valid():
u = User.objects.filter(email=serialized.data['email'])
user = User.objects.get(username=serialized.data['email'])
if len(u) > 0:
token, created = Token.objects.get_or_create(user=user)
return Response({'token': token.key}, status=status.HTTP_200_OK)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.