Ale*_*y K 10 django django-rest-framework
我尝试注册用户并返回令牌和用户ID.这样做
from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.authtoken.models import Token
from rest_framework import status
from django.contrib.auth import get_user_model
User = get_user_model()
class CreateUser(CreateAPIView):
queryset = Profile.objects.all()
serializer_class = UserSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
token, created = Token.objects.get_or_create(user=serializer.instance)
user = User.objects.filter(user=serializer.instance)
return Response({'token': token.key, 'id':user.id}, status=status.HTTP_201_CREATED, headers=headers)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
Cannot resolve keyword "user" into field. Choices are: auth_token, date_joined, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password, user_permissions, username
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?
错误就在于此
user = User.objects.filter(user=serializer.instance)
Run Code Online (Sandbox Code Playgroud)
首先,user您的User模型上没有命名的字段.其次,您不需要对User模型进行过滤以获取创建的用户,因为您已经拥有了用户serializer.instance.所以,没有必要这条线.
如果你只是想要id,你可以使用它serializer.instance.id.
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |