【发布时间】:2015-05-15 10:39:34
【问题描述】:
我一直在尝试使用 django-rest-framework 解决序列化程序和相关字段的问题。目前我有一个看起来像这样的模型:
class DataSetModel(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
class DataPointModel(models.Model):
dataSet = models.ForeignKey(DataSetModel, related_name='dataPoints')
label = models.CharField(max_length=200)
我的序列化器如下所示:
class DataPointSerializer(serializers.ModelSerializer):
class Meta:
model = DataPointModel
fields = ('pk','label')
class DataSetSerializer(serializers.ModelSerializer):
dataPoints = DataPointSerializer(many=True, read_only=True)
class Meta:
model = DataSetModel
fields = ('pk','title')
我遇到的问题是当我尝试更改序列化程序中的“many=False”时会产生此错误:
尝试获取字段
label的值时出现 AttributeError 序列化程序DataPointSerializer。序列化器字段可能被命名 不正确且不匹配RelatedManager上的任何属性或键 实例。原始异常文本是:“RelatedManager”对象没有 属性“标签”。
由于这只是一个模型对象(一对多关系),我希望将结果作为单个对象而不是一个对象的列表。
我这样做是否正确?我认为打开“many=False”会获取嵌套查询中的第一条记录。
任何见解将不胜感激。
【问题讨论】:
标签: django django-models django-rest-framework