Hard to say what's going on. Looks like it's getting an empty string from an ID field. What does the db.clientes definition look like?
On Monday, July 2, 2018 at 7:38:27 AM UTC-4, Diego Tostes wrote: > > Hi, > > i have this table: > > def tempo_total_produto(produto_id): > try: > query = ((db.produto.id == produto_id)) > result = db(query).select() > data_status = result[0]["data_criacao"] > > data_hoje = datetime.date.today() > retorno = abs((data_hoje - data_status).days) > except: > retorno = "sem data" > return retorno > > > Produto = db.define_table('produto', > Field('ficha_tecnica', 'upload', label=T("Ficha Tecnica")), > Field('descricao_produto', 'string', label=T("Descricao Produto")), > Field('foto_frente', 'upload', label=T("Foto Frente")), > Field('foto_costas', 'upload', label=T("Foto Costas")), > Field('foto_detalhe', 'upload', label=T("Foto Detalhe")), > Field('cliente_id', db.clientes, label=T("Cliente ID")), > Field('data_criacao', 'date', default=datetime.date.today, > label=T("Data Criacao Produto")), > Field('referencia', 'string', label=T("Referencia")), > Field('colecao', 'string', label=T("Colecao")), > Field('previsao_entrega', 'date', label=T("Previsão Entrega")), > Field('cronoanalise', 'integer', label=T("Cronoanálise")), > Field('custo', 'double', label=T("Custo Producao")), > Field('preco_venda', 'double', label=T("Preco Venda")), > Field('qtd_estimada', 'integer', label=T("Qtd Estimada")), > Field('lacrado', 'boolean', label=T("LACRADO")), > Field('finalizado', 'boolean', label=T("FINALIZADO")), > Field('cancelado', 'boolean', label=T("CANCELADO")), > Field.Virtual('tempo_total', lambda row: tempo_total_produto( > row.produto.id)), > ) > > > #REQUIRES > Produto.cliente_id.requires = IS_IN_DB(db(Clientes), 'clientes.id', > '%(nome_cliente)s') > > > It is possible create and show a Produto using SQLFORM, but i am getting a > error when i am trying to edit. > > > Traceback > > 1. > 2. > 3. > 4. > 5. > 6. > 7. > 8. > 9. > 10. > 11. > 12. > 13. > 14. > 15. > 16. > 17. > 18. > 19. > 20. > 21. > 22. > 23. > 24. > 25. > 26. > 27. > 28. > 29. > 30. > 31. > 32. > 33. > 34. > 35. > 36. > > Traceback (most recent call last): > File "/home/modasustentavel/web2py/gluon/restricted.py", line 227, in > restricted > exec ccode in environment > File > "/home/modasustentavel/web2py/applications/modasustentavel/controllers/default.py" > > <https://modasustentavel.pythonanywhere.com/admin/edit/modasustentavel/controllers/default.py>, > line 677, in <module> > File "/home/modasustentavel/web2py/gluon/globals.py", line 417, in <lambda> > self._caller = lambda f: f() > File "/home/modasustentavel/web2py/gluon/tools.py", line 4241, in f > return action(*a, **b) > File > "/home/modasustentavel/web2py/applications/modasustentavel/controllers/default.py" > > <https://modasustentavel.pythonanywhere.com/admin/edit/modasustentavel/controllers/default.py>, > line 240, in cadastro_produto > maxtextlength=64,paginate=40) > File "/home/modasustentavel/web2py/gluon/sqlhtml.py", line 2346, in grid > update_form = SQLFORM(table, record, **sqlformargs) > File "/home/modasustentavel/web2py/gluon/sqlhtml.py", line 1295, in __init__ > inp = self.widgets.options.widget(field, default) > File "/home/modasustentavel/web2py/gluon/sqlhtml.py", line 313, in widget > options = requires[0].options() > File "/home/modasustentavel/web2py/gluon/validators.py", line 598, in > options > self.build_set() > File "/home/modasustentavel/web2py/gluon/validators.py", line 584, in > build_set > records = self.dbset(table).select(*fields, **dd) > File "/home/modasustentavel/web2py/gluon/packages/dal/pydal/objects.py", > line 2020, in select > return adapter.select(self.query, fields, attributes) > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1296, in select > return self._select_aux(sql,fields,attributes) > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1277, in _select_aux > return processor(rows,fields,self._colnames,cacheable=cacheable) > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1767, in parse > for row in rows] > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1677, in _parse > value = self.parse_value(value, ft, blob_decode) > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1527, in parse_value > return self.parsemap[key](value,field_type) > File > "/home/modasustentavel/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 1622, in parse_id > return long(value) > ValueError: invalid literal for long() with base 10: '' > > > > > Any idea to fiz this ? > > > Rgds > > Diego > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.