【发布时间】:2016-12-07 03:23:32
【问题描述】:
我的模型中有 ArrayField:
class ACI(models.Model):
node_id = models.ForeignKey(Node)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
aci = ArrayField(models.FloatField())
然后是 Django Rest Framework 中这个模型的 serializers.py
class ACISerializer(serializers.ModelSerializer):
class Meta:
fields = (
'id',
'node_id',
'timestamp',
'aci',
)
model = models.ACI
当我手动尝试通过 DRF Web 界面为模型输入 (POST) 值时,它会为“aci”字段引发错误:需要有效数字。 我尝试以各种方式输入“aci”列表,但没有成功:
- 22.3, 23.4, 22.1
- [22.3, 23.4, 22.1]
- 22.3,23.4,22.1
在serializers.py中添加了这一行,但还是不行:
aci = serializers.ListField(child=serializers.FloatField())
我不明白为什么 DRF 不接受它,它应该只是将它传递给 Django 本身吗?!
使用:
- Django = 1.8.13
- Django 休息框架 = 3.4.0
- PostgreSQL = 9.3.13
任何建议表示赞赏。 谢谢。
【问题讨论】:
-
你遇到了什么错误?
-
@Trying2Learn 我收到错误:需要有效的数字。我可以在 PostgreSQL 中手动插入,这意味着数据库一切正常。 DRF 只接受一个数字(浮点数),而不是浮点数数组。
-
请检查这是否有帮助。 stackoverflow.com/questions/34624272/…
-
当我输入这个数组:[22.3, 22.5] 时,它会抛出如下错误:['[22.3, 22.5]'] 需要一个有效数字
标签: django postgresql django-rest-framework