【发布时间】:2017-08-01 18:33:33
【问题描述】:
在 Django Rest Framework 上执行请求时,我无法序列化模型以获取结果。
models.py
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)
serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
views.py
class UserList(APIView):
queryset = User.objects.all()
def get(self, request):
users = User.objects.all()
serializer = UserSerializer(users)
return Response(serializer.data)
这是我在执行请求时得到的错误的简化版本:
AttributeError:尝试在序列化程序
UserSerializer上获取字段user的值时出现 AttributeError。 序列化程序字段可能命名不正确,并且与QuerySet实例上的任何属性或键都不匹配。 原始异常文本为:“QuerySet”对象没有“用户”属性。
【问题讨论】:
-
您能否将
urls.py添加到您的问题中,也可能添加views.py。我不明白你的序列化器和你的模型之间的链接...... -
@LaurentS 我编辑我的问题
-
尝试序列化器 = UserSerializer(users,many=True)
标签: python django django-rest-framework django-queryset django-serializer