django rest framework上的AttributeError QuerySet'对象没有属性'users

Omi*_*rin 5 python django django-rest-framework

我以某种方式扩展django用户模型,但无法将其序列化并获得结果

我的模特

class Karfarma(models.Model):
    user = models.OneToOneField(User, related_name='karfarma', on_delete=models.CASCADE)
    mobile = models.TextField(max_length=11)
    validation_number = models.TextField(max_length=5, blank=True, default=None)
    phone_number = models.TextField(max_length=10, blank=True, default=None)
    datetime_join_persian = models.DateTimeField(default=None, null=True)

    def __unicode__(self):
        return "%s %s" % (self.user.first_name, self.user.last_name)
Run Code Online (Sandbox Code Playgroud)

我的序列化器

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

我的看法

class UserList(APIView):
    queryset = User.objects.all()

    def get(self, request):
        users = User.objects.all()
        serializer = UserSerializer(users)
        return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误

/ api/members /的AttributeError

'QuerySet'对象没有属性'users'

请求方法:GET

请求网址:http://127.0.0.1: 8000 /api/members /

Django版本:1.8

异常类型:AttributeError

Ani*_*dwe 26

每当您尝试将查询集传递给序列化程序时,始终将其传递给UserSerializer(users,many=True).如果您只想传递单个用户对象,则可以使用User.objects.get(some_attribue=something)该对象,然后将该对象传递给没有该many=True标志的序列化程序.

  • 它帮助我解决了我的问题。谢谢先生@Aniruddha Bhondwe (2认同)