Also, you could maybe search the book with "truncate" keyword, there is already a utility if you just want to control the lenght of free text field or other string field.
Richard On Fri, Apr 20, 2012 at 11:35 AM, Richard Vézina < ml.richard.vez...@gmail.com> wrote: > I think you can't use compute since you modify a field where the user as > to enter something base on the len of user input, so I think you should > transform the code below into function and use onvalidation=function > > > x=len(form.vars.description) > if x>128: > i=128 > dots="..." > else: > i=x-1 > dots="" > s=form.vars.description[0:i] + dots > > Richard > > > > > On Fri, Apr 20, 2012 at 11:26 AM, Annet <anneve...@googlemail.com> wrote: > >> I defined a table eventList: >> >> db.define_table('EventList', >> ... >> Field('description',type='text'), >> Field('shortdescr',length=128,writable=False,readable=False), >> .... >> migrate=False) >> >> db.EventList.description.requires=IS_LENGTH(1536,error_message='length >> exceeds 1536 characters') >> db.EventList.shortdescr.requires=IS_LENGTH(128,error_message='length >> exceeds 128 characters') >> >> shortdescr should be the first 128 characters of description followed by >> three dots. In a function this works: >> >> x=len(form.vars.description) >> if x>128: >> i=128 >> dots="..." >> else: >> i=x-1 >> dots="" >> s=form.vars.description[0:i] + dots >> >> ... but I'd like to add it to the model file. I had a look at the compute >> option but wasn't able to figure out how to get it syntactically correct. >> >> >> Kind regards, >> >> Annet. >> > >