如何在Django FloatField中放置无穷大和负无穷大?

时间:2009-07-13 13:38:45

标签: python django infinity

我试图将无限放在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

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”,则无法在浮点字段中正确存储。