Bonjour,

j'ai un soucis lors de la récupération d'une date dans une page html et le traitement de celle-ci :
- le format de la date est le suivant : dispo u'2010-03-09' issue d'un get.
- je lui effectue ce traitement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if 'dispo' in request.GET:
        dispo = request.GET['dispo']
        if dispo == '':
            dispo = False
        else:
            dispo.split("-")
            month=dispo[1]
            month.split('0')
            if month[0] == '':
                the_month = month[1]
            else:
                the_month = month[0]
            day=dispo[2]
            day.split('0')
            if day[0] == '':
                the_day = day[1]
            else:
                the_day = day[0]
            end_date = datetime.date(int(dispo[0]), int(the_month), int(the_day))
Car la fonction datetime.date n'accepte que les valeurs 1...12 pour les mois et a le même type de restrictions pour les jours (ce qui au passage n'a pas l'air de s'appliquer car si je ne traite pas les jours avec une entrée comme u'03' la fonction marche sans problème).

Si je force le mois avec une valeur directe comme 10 ou 4, la fonction marche.
Dans une console python la fonction marche et renvoie bien le jour ou le mois dans le '0' devant.
Si j'utilise ce que j'ai mis en citation, j'obtiens cette erreur, que le mois soit 01 ou 10 ou 11 (les valeurs en entrée vont de 01 .. à 09 10 11 12) :
ValueError at /rooms/

month must be in 1..12

Request Method: GET
Request URL: http://127.0.0.1:8000/rooms/?city=&d...ice=&done=True
Exception Type: ValueError
Exception Value:

month must be in 1..12

Exception Location: C:\Python26\roomdemosite\roomshare\views.py in rooms, line 173
Python Executable: C:\Python26\python.exe
Python Version: 2.6.4
Python Path: ['C:\\Python26\\roomdemosite', 'C:\\WINDOWS\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'C:\\Python26\\lib\\site-packages\\PIL']
Server time: Tue, 23 Mar 2010 15:34:10 +0100


Environment:

Request Method: GET
Request URL: http://127.0.0.1:8000/rooms/?city=&d...ice=&done=True
Django Version: 1.1.1
Python Version: 2.6.4
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'roomdemosite.roomshare']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
92. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python26\roomdemosite\roomshare\views.py" in rooms
173. end_date = datetime.date(int(dispo[0]), int(the_month), int(the_day))

Exception Type: ValueError at /rooms/
Exception Value: month must be in 1..12

GET
Variable Value
city u''
price u''
done u'True'
dispo u'2010-10-15'
Je dois avoir manqué quelque chose mais je ne comprend pas du tout d'où ça peut venir ... halp plz :/