Hello Andrew,

It does make sense!

I was actually passing one of the record fields to my validator instead of 
the record ID ....I could just have passed the id and then have access to 
any field in the record.

Thanks a lot !

Clara

El lunes, 1 de diciembre de 2014 12:20:11 UTC-3, Andrew Buchan escribió:
>
> Hi Clara,
>
> I think (someone please correct me if I'm wrong -- and have a look at my 
> other question posted just after this :D) that the validator has no access 
> to the record.
>
> But because you can set the validator on a field at any time, one solution 
> is to chang your validator class so it knows about the record id, and only 
> assign the validator to the table's field just before you need to use it in 
> a form, but after you have obtained the record id.
>
> class MY_VALIDATOR(IS_IN_SET):
>     
>     def __init__(self, record_id=None):
>         self.record_id = record_id
>         #whatever your validator does....
>
>     def __call__(self, value):
>         if value == self.self.record_id:
>              #whatever....
>
> def some_controller_url():
>     record_id = request.vars.record_id
>     #Override the validator set in models (if any) with this validator 
> which does have knowledge of the record....
>     db.my_table._my_field.requires = MY_VALIDATOR(record=record_id)
>     form = SQLFORM( db.my_table, record=record_id....)
>     ...#Table will be built with a validator which knows about your record 
> :)
>      
>
> Does this make sense?
>
>
> On Monday, December 1, 2014 2:49:45 PM UTC, clara wrote:
>>
>> Hello all,
>>
>> I am developing a web2py application and I am writing the logic to 
>> control stock of certain items. To that end, I wrote a custom validator 
>> which is working fine when creating new "sale" items. Now the problem 
>> arises when updating these sale items, because I would need to know the 
>> actual record being updated to adjust the logic in this cases.
>>  
>> I could get this information through ._before_update method, but how 
>> would I pass it to the validator ?
>>
>> I am not sure if this is the best way to do it. I will appreciate any 
>> help on this matter!
>>
>> Best regards,
>>
>> Clara
>>
>>
>>

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