This is the code that causes the problem to you:

def parse_datetime(self, value, field_type):
        if not isinstance(value, datetime.datetime):
            ....
            elif '-' in value:
                value,tz = value.split('-')

This function is called when parsing data retrieved from database. The 
reason it is failing is that data is corrupted (contains more than one dash 
and that is not allowed by ISO standard). What database (my guess is 
sqlite, which allows you to change a string field into a datetime while 
leaving data in there). Can you add a print statement and see what the data 
looks like:

def parse_datetime(self, value, field_type):
        if not isinstance(value, datetime.datetime):
            print value
            ....

Let me know it may help understand how the data got in there.

On Friday, 31 August 2012 14:53:16 UTC-5, Brad Miller wrote:
>
> I just upgraded my app to the latest 2.0.3 (stable)  and while checking 
> some of my pages got the following error:
>
> Traceback (most recent call last):
>   File "/Users/bmiller/Beta/web2py/gluon/restricted.py", line 209, in 
> restricted
>     exec ccode in environment
>   File 
> "/Users/bmiller/Beta/web2py/applications/runestone/controllers/admin.py", 
> line 160, in <module>
>   File "/Users/bmiller/Beta/web2py/gluon/globals.py", line 185, in <lambda>
>     self._caller = lambda f: f()
>   File "/Users/bmiller/Beta/web2py/gluon/tools.py", line 2780, in f
>     return action(*a, **b)
>   File 
> "/Users/bmiller/Beta/web2py/applications/runestone/controllers/admin.py", 
> line 116, in studentactivity
>     db.useinfo.sid, count, last, groupby=db.useinfo.sid, orderby=count)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 8692, in select
>     return adapter.select(self.query,fields,attributes)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 2029, in select
>     return super(SQLiteAdapter, self).select(query, fields, attributes)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 1529, in select
>     return self._select_aux(sql,fields,attributes)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 1510, in _select_aux
>     return processor(rows,fields,self._colnames,cacheable=cacheable)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 1886, in parse
>     fields[j].type,blob_decode)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 1718, in parse_value
>     return self.parsemap[key](value,field_type)
>   File "/Users/bmiller/Beta/web2py/gluon/dal.py", line 1753, in 
> parse_datetime
>     value,tz = value.split('-')
> ValueError: too many values to unpack
>
> This is the result of this this query code, which continues to work under 
> 1.99.7
>
>     count = db.useinfo.id.count()
>     last = db.useinfo.timestamp.max()
>     res = db(db.useinfo.course_id==course.course_id).select(
>         db.useinfo.sid, count, last, groupby=db.useinfo.sid, orderby=count)
>
> I'm assuming this is some kind of regression since the same code is 
> working in 1.99.7, but maybe I'm doing something that I could do  but no 
> longer should??
>
> Brad
>
>

-- 



Reply via email to