Django 用户不是JSON可序列化的ee
我有这个错误Django 用户不是JSON可序列化的ee,django,django-rest-framework,Django,Django Rest Framework,我有这个错误 raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type User is not JSON serializable, raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type User is not JSON serializable [23/Jul/2019
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type User is not JSON serializable,
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type User is not JSON serializable
[23/Jul/2019 19:16:13] "GET /api/users/profile/ttt/ HTTP/1.1" 500 102886
请帮帮我
def get_followers(self, obj):
return obj.profile.followers.all()
/////序列化程序.py////////
from django.contrib.auth import get_user_model
User = get_user_model()
class ProfileRetrieveSerializer(serializers.ModelSerializer):
"""
Serializer that represents a profile.
"""
queryset=User.objects.all()
followers = serializers.SerializerMethodField()
class Meta:
model = User
fields = [
'followers',
]
def get_followers(self, obj):
return obj.profile.followers.all()
/////////////models.py/////////////////
from django.contrib.auth.models import User
from django.db import models
class Profile(models.Model):
"""
Model that represents a profile.
"""
user = models.OneToOneField(settings.AUTH_USER_MODEL,
related_name='profile', on_delete=models.CASCADE)
followers = models.ManyToManyField(
User, related_name='following', blank=True
)
class Meta:
ordering = ('-member_since', )
我得到这个错误
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type User is not JSON serializable,
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type User is not JSON serializable
[23/Jul/2019 19:16:13] "GET /api/users/profile/ttt/ HTTP/1.1" 500 102886
必须先序列化用户,才能通过UserSerializer显示跟随者
class UserSerializer(serializers.ModelSerializer):
""" Serializer that represents a user. """
class Meta:
model = User
fields = [
'username',
'first_name',
'last_name',
]
class ProfileRetrieveSerializer(serializers.ModelSerializer):
""" Serializer that represents a profile. """
followers = serializers.SerializerMethodField()
class Meta:
model = User
fields = [
'followers',
]
@staticMethod
def get_followers(obj):
return UserSerializer(obj.profile.followers.all(), many=True).data
而观点应如下所示:
from django.contrib.auth import get_user_model
class UserProfileListAPI(ListAPIView)
queryset=get_user_model().objects.all()
serializers_class = ProfileRetrieveSerializer
def get(self,request,*args,**kwargs):
return self.list(request, *args, **kwargs)