Как поставить бесконечность и минус бесконечность в Django FloatField? - PullRequest
4 голосов
/ 13 июля 2009

Я пытаюсь поместить бесконечность в 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

Ответы [ 2 ]

4 голосов
/ 13 июля 2009

Кажется, что в Djangos ORM нет специальной обработки для этого. Питоны представляют значения inf и -inf, в то время как PostgrSQL хочет значения Infinity и -Infinity. Очевидно, что Djangos ORM не обрабатывает это преобразование.

Так что, думаю, вам нужно починить ORM. А затем подумайте о том, что другие базы данных SQL могут очень хорошо использовать другие форматы или вообще не будут обрабатывать бесконечность.

0 голосов
/ 13 июля 2009

Это должно быть «бесконечность», не так ли? Тем не менее, я не знаю, может ли это быть сохранено в поле с плавающей точкой. float ('infinity') возвращает inf, и это будет поле char.

Edit: К сожалению, трудно сказать, что Django использует библиотеку C, не копаясь глубоко. Я бы сказал, выяснить, какое значение на самом деле хранится в поле с плавающей точкой, или, по крайней мере, определить, что возвращается. Если это действительно «inf», то это не может быть должным образом сохранено в поле с плавающей запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...