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

Reply via email to