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 ?


Reply via email to