On 27 Oct 2012, at 10:08 PM, Massimo Di Pierro <massimo.dipie...@gmail.com> 
wrote:
> There are two issues here. One is that validators were originally intended 
> for form input and form input never submit None. They submit '' or missing 
> value but never None. I agree with you that you may want to call validators 
> and pass a None. In that case there is no need to ignore it. One problem 
> remains, will this break backward compatibility. Perhaps no. Not sure.

Joe makes a pretty persuasive argument. Call it a bug fix.

> 
> Can you show your modifications to dal.py?
> 
> On Saturday, 27 October 2012 17:48:54 UTC-5, Joe Barnhart wrote:
> But Massimo -- why do an early exit from "Field.formatter" if the value is 
> None?  Why not give the formatter object a chance to format None values?  I 
> just don't understand this decision.  It is expedient for a small number of 
> programs where the user doesn't want to format None, but at the expense of 
> preventing anyone from ever formatting None.
> 
> Your fix only papers over the problem by storing "NT" in the table instead of 
> None.  What if I want to show it as "N/T" later, or "no time"?  I have to do 
> a bulk change on the database just to accomplish a formatting task.  There 
> could be many reasons for wanting to format None into some other value -- all 
> ignored because you chose to do an early exit in the formatter routine 
> instead of passing the real value along.  
> 
> It is also not explained anywhere in the documentation that None will never 
> be passed into the formatter, so it can't be a backwards-compatibility issue.
> 
> -- Joe B.
> 
> P.S.  I'm perfectly happy to modify my version of dal.py forever, but I'm 
> really interested in your reasoning for the early exit on None and if this 
> pattern is carried out in other parts of web2py.
> 
> On Saturday, October 27, 2012 12:44:21 PM UTC-7, Massimo Di Pierro wrote:
> You can do
> 
> db.table.filter_in = lambda value: 'NT' is value is None else value
> 
> 
> On Saturday, 27 October 2012 02:54:53 UTC-5, Joe Barnhart wrote:
> But Paolo -- you forgot the third option...  
> 
> FIX the problem in dal.py so that Validator classes work properly.  It has no 
> deleterious effects on other validators (at least so far in my testing) and 
> it permits validators to format None values.
> 
> -- Joe B.
> 
> 
> 
> -- 
>  
>  
>  


-- 



Reply via email to