On Wednesday, April 18, 2018 at 6:21:12 PM UTC-4, dirman wrote:
>
> Working after adding compute=lambda
>
> Field('link', compute=lambda r: r.article_link.replace(' ', '-'))
>

Sorry, forgot the "compute=". I've updated my original response.
 

> However the table fields can not be updated using grid
>

You can force the grid to include compute fields in forms by using the 
"formargs" argument to pass the "fields" argument to the SQLFORM generated 
by the grid:

grid = SQLFORM.grid(..., formargs=dict(fields=['article_title', 
'article_link']))

When the grid generates the edit SQLFORM, it will pass the above "fields" 
argument to SQLFORM, which will override the default field selection (which 
excludes compute fields) and allow article_link to be edited. Note, if you 
leave 'article_link' blank in a create or edit form, it will be entered as 
an empty string in the database rather than computed. To avoid that with 
create forms, you can instead limit 'article_link' to appear only in edit 
forms by replacing "formargs" above with "editargs" (which only applies to 
edit forms).

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 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.

Reply via email to