Ha! 

requires=[IS_NOT_EMPTY(), IS_LENGTH(64)]

And it works like a champ!

On Monday, August 22, 2016 at 7:12:50 PM UTC-4, Ron Chatterjee wrote:
>
> Its all good. Just checking. Thanks for the help Niphlod.
>
> On Monday, August 22, 2016 at 5:11:17 PM UTC-4, Ron Chatterjee wrote:
>>
>> What I want is allowing user to put limited string but they can't submit 
>> the form with an empty field. 
>>
>> requires = IS_EMPTY_OR([IS_LENGTH(8), IS_NOT_EMPTY()] )
>>
>> That don't work. Obviously not because its conflicting. Right? In one 
>> hand I am saying empty or insert value (8) and then saying can't be empty. 
>> Do we have any other validators that I can try which takes those two 
>> arguments?
>>
>> On Monday, August 22, 2016 at 4:06:03 PM UTC-4, Niphlod wrote:
>>>
>>> to my knowledge, the general rule for validators is that if you have 
>>> multiple requirements, you should pass a list.
>>> That being said, the are "special" validator, like IS_EMPTY_OR, that 
>>> take a validator as an argument.
>>>
>>> Goes without saying (it quite translates well), that 
>>> IS_EMPTY_OR(IS_LENGTH(8)) EITHER accepts nothing or a string shorter than 8 
>>> chars.
>>> Now, the "deal". How would you consider a field in a form that is not 
>>> filled ? None or '' ?
>>>
>>> IS_NOT_EMPTY() prevents an empty input.
>>>
>>> it's not clear what you want, but I guess something got cleared with my 
>>> previous comments.
>>> Also, validators ONLY apply when you use them: forms, 
>>> validate_and_insert(), validate_and_update(), etc. Using validators only is 
>>> perfectly fine if you let the app validate each and every input.
>>> length=123 enforces the underlying column to be of that length, but if 
>>> you want meaningful errors, you need to use validators anyways.  
>>>
>>> On Monday, August 22, 2016 at 5:54:29 PM UTC+2, Ron Chatterjee wrote:
>>>>
>>>> In other words, if I do this: 
>>>>
>>>> IS_EMPTY_OR(IS_LENGTH(8))
>>>>
>>>> It prevents longer length string but the empty field is inserted as 
>>>> None. I want to prevent both.
>>>>
>>>>
>>>> On Monday, August 22, 2016 at 10:54:08 AM UTC-4, Ron Chatterjee wrote:
>>>>>
>>>>> Two question, if you don't mind.
>>>>>
>>>>> (1) requires = IS_NOT_EMPTY(IS_LENGTH(64)) Or requires = 
>>>>> IS_EMPTY_OR(IS_LENGTH(64)) Doesn't work. In other words, if I want to 
>>>>> limit 
>>>>> the string field entry but also want requires not empty, how to go about 
>>>>> it?
>>>>>
>>>>> (2) for my sql, do I still need length = 64 (or 255 etc)? Its 
>>>>> redundant when I define IS_LENGTH(64) or do I need both?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Monday, August 22, 2016 at 7:49:42 AM UTC-4, Niphlod wrote:
>>>>>>
>>>>>> requires=IS_LENGTH(64) will limit insertion upon validation. the 
>>>>>> "length" attribute gets translated, wherever possibile, to 
>>>>>> backend-specific 
>>>>>> syntaxes.
>>>>>>
>>>>>> On Sunday, August 21, 2016 at 4:21:22 AM UTC+2, [email protected] 
>>>>>> wrote:
>>>>>>>
>>>>>>> How we limit string length in DAL? It seems length = 64 doesn't 
>>>>>>> work. 
>>>>>>>
>>>>>>

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