【发布时间】:2018-09-12 00:21:39
【问题描述】:
所以我在一个使用 Django 的网站上工作,并且在使用序列化程序时遇到了问题。这是代码:
class DataPointSerializer(serializers.ModelSerializer):
value = serializers.DecimalField(max_digits=30, decimal_places=15)
sensor = serializers.ChoiceField(choices=list(Sensor.objects.all()))
point = serializers.ChoiceField(choices=list(MapPoint.objects.all()))
class Meta:
model = DataPoint
fields = "__all__"
def create(self, attrs, instance=None):
return DataPoint(value=attrs['value'], sensor=attrs['sensor'], point=attrs['point'])
我的 DataPoint 模型使用 value 作为十进制字段,sensor 作为外键,point 作为另一个外键。我正在使用选择字段来获取已创建的对象,但是从 create 函数中,我得到一个 TypeError 说(传感器对象)不是 JSON 可序列化的。我认为同样的事情正在发生,但我不确定该怎么做。任何帮助将不胜感激!
【问题讨论】:
-
首先,您需要显示实际的完整回溯。但其次,你为什么使用 ChoiceField 而不是序列化器关系?
标签: python django serialization django-models django-rest-framework