No, it doesn't. It simply doesn't show the field.
sábado, 30 de Março de 2019 às 19:43:46 UTC, Jim S escreveu: > > Just change it to > > Field('sn', label=T('SN'), writable=False) > > Doesn't that work? > > > Jim > > > > > On Sat, Mar 30, 2019, 2:31 PM João Matos <jcrm...@gmail.com <javascript:>> > wrote: > >> This is my code >> form = SQLFORM.factory( >> Field('equipment_id', >> label=T('Equipment'), >> requires=IS_IN_SET({wo.equipment_id: db.equipment(wo. >> equipment_id).name}, >> zero=None), >> ), >> Field('sn', >> label=T('SN'), >> widget=lambda field, value: ( >> SQLFORM.widgets.string.widget(field, value, _readonly= >> True)), >> ), >> Field('code', >> label=T('WO'), >> requires=IS_EMPTY_OR(IS_IN_DB(db(query), 'wo.code', >> distinct=True)), >> ), >> Field('client_id', >> label=T('Client'), >> requires=IS_IN_DB(db, 'client.id', '%(name)s', zero=T('Choose >> one...')), >> ), >> Field('manual_lang_id', >> label=T('Manual language'), >> requires=IS_IN_DB(db, >> 'manual_lang.id', >> '%(name)s', >> zero=T('Choose one...'), >> ), >> ), >> Field('co_code', default='', label=T('Customer order')), >> Field('so_code', default='', label=T('Supplier order')), >> Field('export', 'boolean', default=False, label=T('Export')), >> Field('notes', default='', label=T('Notes')), >> Field('observations', default='', label=T('Observations')), >> Field('est_finish', >> 'date', >> label=T('Estimated finish'), >> notnull=True, >> required=True, >> requires=IS_DATE_IN_RANGE( # format=T('%Y-%m-%d'), >> minimum=request.now.date() + >> timedelta(days=1), >> # maximum=request.now.date() + , >> error_message=T('Must be a >> future date.') >> ) >> ), >> *factory_fields, >> ) >> >> >> sábado, 30 de Março de 2019 às 19:03:40 UTC, Anthony escreveu: >>> >>> Hard to say without seeing your code, but it definitely works for me. >>> >>> On Saturday, March 30, 2019 at 2:37:27 PM UTC-4, João Matos wrote: >>>> >>>> How can I use the fields argument without a db? >>>> I tried >>>> fields=['sn'] >>>> but it returns an KeyError. >>>> >>>> >>>> sábado, 30 de Março de 2019 às 18:27:11 UTC, Anthony escreveu: >>>>> >>>>> I don't see any advantage in using the fields parameter because the >>>>>> change I found >>>>>> form.element('#no_table_sn')['_readonly'] = 'readonly' >>>>>> and the suggestion you made >>>>>> widget=lambda f, v: SQLFORM.widgets.string.widget(f, v, _readonly= >>>>>> True) >>>>>> only change 1 line, and using the fields would make me change all the >>>>>> Fields lines (if I'm not mistaken). >>>>>> >>>>> >>>>> No, "fields" is an argument of SQLFORM: >>>>> >>>>> form = SQLFORM.factory(..., fields=['field1', 'field2', ...]) >>>>> >>>>> Anyway, setting the _readonly attribute of the input widget and >>>>> setting writable=False in the Field() definition do two different things. >>>>> The former makes the input element read-only in the UI but is less secure >>>>> because it does not prevent writes on the server. The latter does not use >>>>> an input element to display the data in the UI, and it also prevents >>>>> writes >>>>> on the server. >>>>> >>>>> Anthony >>>>> >>>> -- >> 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 a topic in the >> Google Groups "web2py-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/web2py/U7zQi02p2MY/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> web...@googlegroups.com <javascript:>. >> 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.