【发布时间】:2019-03-07 10:24:24
【问题描述】:
我遇到了异常
在序列化程序 WeightHistorySerializer 上尝试获取字段 weight 的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 QuerySet 实例上的任何属性或键都不匹配。
原始异常文本是:“QuerySet”对象没有属性“权重”。
当我尝试检索数据时。
models.py
class WeightHistory(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
weight = models.FloatField(null=False, blank=False)
created_at = models.DateTimeField(auto_now_add=True)
序列化器.py
class WeightHistorySerializer(serializers. HyperlinkedModelSerializer):
class Meta:
model = WeightHistory
fields = (
'id',
'weight',
'user_id',
'created_at'
)
read_only_fields = ('id',)
views.py
def weight_history_detail(request, user_id):
# Retrieve, update or delete a weight_history/detail.
try:
weight_history = WeightHistory.objects.filter(user_id=user_id)
except WeightHistory.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
serializer = WeightHistorySerializer(weight_history)
return Response(serializer.data)
如果改为
weight_history = WeightHistory.objects.get(user_id=user_id)
它只返回一行,但我想要给定 user_id 的所有行。那么,我应该怎么做才能获取给定 user_id 的所有列表。
【问题讨论】: