I have an application where I expect "None" items in my database and I want 
to format them to "NT".  It is an app that uses time standards, and if 
there is no standard present I expect a "None" in the database which 
translates to a field of "No Time" or "NT".

The problem is that the current implementation of formatter in the Field 
class tests the value for "None" and escapes before the formatter is called.

I can see why this behavior might be expected in a lot of cases, but it 
seems extreme to deny the ability to format "None" into a more pleasing 
form for those applications that could benefit from it.  Here is the 
offending part of formatter (located in gluon/dal.py):

    def formatter(self, value):
        requires = self.requires
        if value is None or not requires:
            return value

If I change the above to:

    def formatter(self, value):
        requires = self.requires
        if not requires:
            return value

I get my desired behavior, which is to pass "None" to my formatter which is 
implemented as part of a custom Validator object.  I realize the code now 
has to go "further" for cases where the value is None, but is it really 
safe to assume nobody will ever want to "format" None into another string?  
Not in my case, at least!

Joe B.


-- 



Reply via email to