Hi Friends, I'm developing a 'calendar' (agenda in portuguese) app and this app is deployed in GAE.
My db.py # the data_hora field have a brazilian format and I cannot have two records in the same data/time (only a event in a date/time) db.define_table('agenda', Field('data_hora','datetime', default=now, requires=[IS_DATE('%d/ %m/%Y %H:%M'), IS_NOT_IN_DB(db, 'agenda.data_hora')], unique=True, label=T('Data/Hora')), Field('cliente_id', db.cliente, requires=IS_NULL_OR(IS_IN_DB(db, 'cliente.id', 'cliente.alcunha')), label=T('Cliente')), Field('nome','string', length=255, default='', label=T('Cliente Novo')), Field('telefone_cliente','string', requires=IS_NOT_EMPTY(), length=50, default='', label=T('Telefone Cliente')), Field('servico_id', db.servico, requires=IS_NULL_OR(IS_IN_DB(db, 'servico.id', 'servico.nome')), label=T('Serviço')), Field('atendente_id', db.atendente, requires=IS_NULL_OR(IS_IN_DB(db, 'atendente.id', 'atendente.alcunha')), label=T('Atendente')), Field('origem_cliente','string', length=20, default='Telefone', requires=IS_IN_SET(['Site', 'Telefone', 'Visita a Estética', 'e-mail', 'MSN','Mailisting']), label=T('Origem Cliente')), Field('status','string', length=8, default='Agendado', requires=IS_IN_SET(['Agendado', 'Atendendo', 'Atendido', 'Cancelado']), label=T('Status'))) My Controller: def agendas(): return dict(rows = crud.select(db.agenda, _id='list'), create_link = A('Novo Registro', _href=URL(r=request, f = 'agenda_create'), _id="create_link")) def agenda(): return dict(form=crud.update(db.agenda, request.args[0], next=URL(r = request,f = 'agendas'))) def agenda_create(): return dict(form=crud.create(db.agenda, next=URL(r = request,f = 'agendas'), message=T("Registro Inserido com Sucesso !"))) Well, The CRUD form to create a record is displayed with success, but when I click in submit button I receive this error message: # 1. 05-04 05:01PM 10.403 /init/rotinas/agenda_create 500 267ms 349cpu_ms 155api_cpu_ms 0kb Mozilla/5.0 (X11; U; Linux i686; en-US; rv: 1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3,gzip(gfe) See details 189.114.129.59 - - [04/May/2010:17:01:10 -0700] "POST /init/ rotinas/agenda_create HTTP/1.1" 500 394 "http://estetica- plus.appspot.com/init/rotinas/agenda_create" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3,gzip(gfe)" "estetica-plus.appspot.com" 2. E 05-04 05:01PM 10.668 In FILE: /base/data/home/apps/estetica-plus/1.341722964697072247/ applications/init/controllers/rotinas.py Traceback (most recent call last): File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/restricted.py", line 178, in restricted exec ccode in environment File "/base/data/home/apps/estetica-plus/1.341722964697072247/ applications/init/controllers/rotinas.py:agenda_create", line 134, in <module> File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/globals.py", line 96, in <lambda> self._caller = lambda f: f() File "/base/data/home/apps/estetica-plus/1.341722964697072247/ applications/init/controllers/rotinas.py:agenda_create", line 69, in agenda_create File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/tools.py", line 2491, in create deletable=False, File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/tools.py", line 2435, in update onvalidation=onvalidation, keepvalues=keepvalues): File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/sqlhtml.py", line 857, in accepts onvalidation, File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 1311, in accepts status = self._traverse(status) File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 454, in _traverse newstatus = c._traverse(status) and newstatus File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 454, in _traverse newstatus = c._traverse(status) and newstatus File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 454, in _traverse newstatus = c._traverse(status) and newstatus File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 454, in _traverse newstatus = c._traverse(status) and newstatus File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 461, in _traverse newstatus = self._validate() File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/html.py", line 1118, in _validate (value, errors) = validator(value) File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/validators.py", line 448, in __call__ rows = self.dbset(field == value).select(limitby=(0, 1)) File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/contrib/gql.py", line 307, in __eq__ return Query(self, '=', value) File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/contrib/gql.py", line 543, in __init__ right = dateobj_to_datetime(obj_represent(right, left.type, left._db)) File "/base/data/home/apps/estetica-plus/1.341722964697072247/ gluon/contrib/gql.py", line 465, in obj_represent str(obj)[11:].strip().split(':')[:3]] ValueError: invalid literal for int() with base 10: '' How to solve this problem ?