5

我试图在 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)

我正在使用 Django 1.0.2 和 PostgreSQL 8.3

4

2 回答 2

5

似乎 Django 的 ORM 对此没有任何特殊处理。值的 Python 表示是 inf 和 -inf,而 PostgrSQL 需要“Infinity”和“-Infinity”。显然 Django 的 ORM 不处理这种转换。

所以你需要修复ORM,我猜。然后想想其他 SQL 数据库可能非常需要其他格式,或者根本不处理无穷大的事实。

于 2009-07-13T15:43:01.073 回答
0

它应该是“无限”,不是吗?但是,我不知道是否可以将其存储在浮点字段中。float('infinity') 返回 inf,这将是一个 char 字段。

编辑:不幸的是,如果不深入挖掘,很难说 Django 使用什么 C 库。我想说弄清楚存储在 float 字段中的值实际上是什么,或者至少确定返回的是什么。如果它确实是“inf”,那么它就不能正确存储在浮点字段中。

于 2009-07-13T13:41:15.467 回答