/ / Come mettere infinito e meno infinito in Django FloatField? - python, django, infinito

Come mettere infinito e meno infinito in Django FloatField? - python, django, infinito

Sto cercando di mettere infinito in un FloatField, ma non sembra funzionare. Come posso risolvere questo?

f = DjangoModel(float_value=float("inf")) #ok
f.save() #crashes

Risultati in:

Traceback (most recent call last):
...
ProgrammingError: column "inf" does not exist
LINE 1: ... "float_value") VALUES (inf)

Sto usando Django 1.0.2 con PostgreSQL 8.3

risposte:

3 per risposta № 1

Sembra che Djangos ORM non ne abbiatrattamento speciale per questo. La rappresentazione dei pitoni dei valori è inf e -inf, mentre PostgrSQL richiede "Infinity" e "-Infinity". Ovviamente Djangos ORM non gestisce questa conversione.

Quindi hai bisogno di aggiustare l'ORM, immagino. E poi pensa al fatto che altri database SQL potrebbero volere molto bene altri formati, o non riuscire a gestire gli infiniti.


0 per risposta № 2

Dovrebbe essere "infinito" non dovrebbe? Tuttavia, non so se può essere memorizzato in un campo float. float ("infinity") restituisce inf, e quello sarebbe un campo char.

Modificare: Sfortunatamente, è difficile dire cosa usi la libreria C Django senza scavare in profondità. Direi di capire quale sia il valore memorizzato nel campo float o, almeno, determinare cosa viene restituito.Se effettivamente è "inf", allora non può essere memorizzato correttamente in un campo float.