Done: Issue 29 <https://code.google.com/p/pyfpdf/issues/detail?id=29>: on
error IS_LIST_OF() changes the value of INPUT

2012/9/16 Massimo Di Pierro <massimo.dipie...@gmail.com>

> Definitively a problem with the widget. Please open a ticket about it.
>
>
> On Saturday, 15 September 2012 17:01:44 UTC-5, mweissen wrote:
>
>> Sorry, I did not mention:
>> I did not use a form, I have used the admin interface to insert and
>> update the records.
>> I have tried it twice: first with my "real" program and second with the
>> small program I have sent.
>>
>> Now I have added this function:
>>
>> def em():
>>     form=SQLFORM(db.address)
>>     if form.process().accepted:
>>         response.flash='ok'
>>     elif form.errors:
>>         print form.errors
>>     return dict(form=form)
>>
>> ... and used it to add two wrong email-addresses:
>> aa
>> bb
>>
>> I did not get an error messege below the fields, but the flash "Errors in
>> form, please check it out" and both fileds look like
>> ['aa', 'bb']
>>
>>
>> 2012/9/15 Massimo Di Pierro <massimo....@gmail.com>
>>
>>> I cannot reproduce this:
>>>
>>> >>> IS_EMAIL()('x')
>>> ('x', 'enter a valid email address')
>>> >>> IS_EMAIL()('x...@x.com')
>>> ('x...@x.com', None)
>>> >>> IS_LIST_OF(IS_EMAIL())(['x'])
>>> (['x'], 'enter a valid email address')
>>> >>> IS_LIST_OF(IS_EMAIL())(['x...@x.**com'])
>>> (['x...@x.com'], None)
>>> >>> IS_LIST_OF(IS_EMAIL())(['x#x.**com <http://x.com>'])
>>> (['x#x.com'], 'enter a valid email address')
>>>
>>> can your print form.errors? Perhaps this is a problem with the widget
>>> and not the validator.
>>>
>>> On Saturday, 15 September 2012 13:08:50 UTC-5, mweissen wrote:
>>>
>>>> I have a simple table, one name and a list of email-addresses:
>>>>
>>>> db.define_table('address',
>>>>     Field('name'),
>>>>     Field('emails','list:string', requires=IS_LIST_OF(IS_EMAIL()****)))
>>>>
>>>> Now I add one name and two email-addresses to this table.
>>>>
>>>> Id:      1
>>>> Name:    Smith
>>>> Emails:  jsm...@example.com
>>>>          j...@example.com
>>>>
>>>> Everything looks fine.
>>>>
>>>> But if there is an error in the email-address (which is catched by the
>>>> validator), a lot goes wrong:
>>>> Both email-addresses are converted to a list; this list is doubled and
>>>> ...
>>>>
>>>> Id:      1
>>>> Name:    Smith
>>>> Emails:  ['jsmith*#*example.com', 'j...@example.com']
>>>>          ['jsmith#example.com', 'j...@example.com']
>>>>
>>>> ... there is no error message!
>>>>
>>>> Now I have changed the model to
>>>>
>>>> db.define_table('address',
>>>>     Field('name'),
>>>>     Field('emails','list:string', requires=IS_EMAIL()))
>>>>
>>>> but this model does not detect the wrong email address.
>>>>
>>>> What is the right way to use a validator with a list of strings?
>>>>
>>>> Regards, Martin
>>>>
>>>
>>>

-- 



Reply via email to