Bom dia, sou novo em programação e principalmente em Web2py. Antes de começar a desenvolver o programa maior estou fazendo testes com pequenos códigos. Estou com um problema e não estou conseguindo achar a solução e por isso gostaria de uma ajuda. Já fiz várias pesquisas mas nada. Segue os que fiz e desde já agradeço a quem puder ajudar.
db.py
Pais = db.define_table('pais',
Field('pais_nome', 'string', label='Nome do País'),
Field('pais_sigla', 'string', label='Sigla do País'),
Field('pais_ddi', 'integer', label='Código DDI'),
Field('pais_bandeira', 'upload', label='Imagem Bandeira do País')
)
Estado = db.define_table('estado',
Field('estado_nome', 'string', label='Nome do Estado'),
Field('estado_sigla', 'string', label='Sigla do Estado'),
Field('pais_sigla', 'reference pais', label='Sigla do País'),
Field('estado_cep1', 'string', label='Cep1 - Faixa Inicial'),
Field('estado_cep2', 'string', label='Cep2 - Faixa Final'),
Field('estado_bandeira', 'upload', label='Imagem Bandeira do Estado')
)
validator.py
## Validadores de Pais
db.pais.pais_nome.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, db.pais.pais_nome)]
db.pais.pais_bandeira.requires = IS_EMPTY_OR(IS_IMAGE())
## Validadores de Estado
db.estado.estado_nome.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, db.estado.estado_nome)]
db.estado.pais_sigla.requires = [IS_NOT_EMPTY(),
IS_IN_DB(db, '
pais.id', '%(pais_sigla)s')]
db.estado.estado_bandeira.requires = IS_EMPTY_OR(IS_IMAGE())
default.py
### Pais
def novo_pais():
form = SQLFORM(Pais)
if form.process().accepted:
session.flash = 'Novo País Cadastrado: %s' % form.vars.titulo
redirect(URL('novo_pais'))
elif form.errors:
response.flash = 'Erros no formulário!'
else:
if not response.flash:
response.flash = 'Preencha o formulário!'
return dict(form=form)
def ver_pais():
grid = SQLFORM.grid(Pais, user_signature=False, create=True, deletable=True, editable=True)
return dict(grid=grid)
### Estado
def novo_estado():
form = SQLFORM(Estado)
if form.process().accepted:
session.flash = 'Novo Estado Cadastrado: %s' % form.vars.titulo
redirect(URL('novo_estado'))
elif form.errors:
response.flash = 'Erros no formulário!'
else:
if not response.flash:
response.flash = 'Preencha o formulário!'
return dict(form=form)
def ver_estado():
grid = SQLFORM.grid(Estado, user_signature=False, create=True, deletable=True, editable=True)
return dict(grid=grid)
ver_estado.html
{{extend 'layout.html'}}
<h1>Estados</h1>
{{=grid}}
O erro ocorre quando acesso a página do ver_estado : Query Not Supported: invalid literal for long() with base 10: 'BR'
Aparece que há duas páginas mas não aparece nada. Somente o erro mencionado