Bonjour, j'ai pu passer quelques minutes avec Monsieur Pujol  avec de la
VOIP.

Avec PostgreSQL, les dates sont enregistrés en "timestamp with timezone" et
semblent ne pas se comparer à des entiers si facilement.

J'ai vu des customfields qui en effet gérait ça avec des integer mais je ne
suis pas sur que ce soit fonctionnel en production avec postgres et des
dates avec timezone. Ce qui m'a mis la pusse à l'oreille est l'erreur quand
on a essayé:

Todo.objects.filter(datelimite__lte=int(time.mktime(today.timetuple())) +
(F("tache__delai") *3600 * 24))

DatabaseError: ERREUR:  l'opérateur n'existe pas : timestamp with time zone
<= integer

Cordialement,

2012/9/18 Franck PUJOL <[email protected]>

> Je vais regarder les 2 pistes que tu proposes.
>
> La 2eme me semble préférable car je préfère autant que possible garder le
> côté portabilité.
> Merci pour tes investigations
>
> Le 17 septembre 2012 22:51, ksamuel <[email protected]> a écrit :
>
> Bon, y a deux manières possibles:
>>
>> 1 - utiliser 'extra' (probablement non portable)
>> 2 - faire un custom field pour datelimite
>>
>> 1 suppose de grosso modo écrire du sql à la main.
>>
>> 2, il faut faire une classe qui hérite de IntegerField, mais qui accepte
>> une date en entrée, la sauvegarde comme timestamp, et au loading, la
>> reconverti en date. Ainsi la comparaison peut se faire avec F, puisque les
>> timestamps sont juste des entiers.
>> _______________________________________________
>> django mailing list
>> [email protected]
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
>
> _______________________________________________
> django mailing list
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django
>



-- 
Best regards,
Christophe Narbonne

http://blogs.dotnet-france.com/christophen/
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à