The problem was at dB.clientes...

Solved. Thanks!!

Em seg, 2 de jul de 2018 16:20, Anthony <[email protected]> escreveu:

> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to