我试图将无限放在FloatField中,但这似乎不起作用。我该如何解决这个问题?
f = DjangoModel(float_value=float('inf')) #ok
f.save() #crashes
结果:
Traceback (most recent call last):
...
ProgrammingError: column "inf" does not exist
LINE 1: ... "float_value") VALUES (inf)
我正在使用带有PostgreSQL 8.3的Django 1.0.2
答案 0 :(得分:4)
似乎Djangos ORM对此没有任何特殊处理。 Pythons代表的值是inf和-inf,而PostgrSQL想要'Infinity'和'-Infinity'。显然Djangos ORM不处理这种转换。
所以你需要修复ORM。然后想想其他SQL数据库可能非常需要其他格式,或根本不处理无穷大这一事实。
答案 1 :(得分:0)
应该是'无限'不应该吗?但是,我不知道是否可以将其存储在float字段中。 float('infinity')返回inf,这将是一个char字段。
编辑:不幸的是,很难说没有挖掘深入的C库Django使用什么。我想弄清楚float字段中存储的值实际上是什么,或者至少确定返回的是什么。如果它确实是“inf”,则无法在浮点字段中正确存储。