【发布时间】:2021-05-16 13:47:36
【问题描述】:
在 AbstractUser 模型上调用 request.user 会导致 TypeError 'AnonymousUser' 对象不可迭代。
我这样创建了一个抽象的用户模型:
class User(AbstractUser):
username = models.CharField(blank=True, null=True, max_length=30)
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'first_name', 'last_name']
def __str__(self):
return "{}".format(self.email)
我将 JSON Web 令牌添加到我的用户模型中。我想在访问特定 URL 时获取当前用户的详细信息。为此,我在 views.py 中进行了尝试:
@api_view(['GET'])
def getUserProfile(request):
user = request.user
serializer = UserSerializer(user, many=True)
return Response(serializer.data)
这在 serialisers.py 中
from django.conf import settings
User = settings.AUTH_USER_MODEL
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
现在,当我转到调用此视图的 url 时,我得到 TypeError 'AnonymousUser' object is not iterable。我认为这是因为 request.user 无法识别我的 AbstractUser。即使我已登录,也会出现此问题。如何解决此问题?
【问题讨论】:
标签: javascript python django django-rest-framework jwt