Hi Massimo,

Currently the error_message of all validators are a phrase in English,
such as 'value already in database!' etc. When I gonna do some i18n
for it, I have to do:

  db.Field('foo',
    requires=IS_NOT_IN_DB(
      db,"table.field",
      error_message=T('value already in database!')))

  db.Field('bar',
    requires=IS_NOT_IN_DB(
      db,"table.field2",
      error_message=T('value already in database!'))) # breaks DRY
rule!

So I suggest we either:
(1) let the default error_message be i18n-ready:
    from ... import T
    class IS_NOT_IN_DB(...):
      def __init__(self,
        ...
        error_message=T('value already in database!'),
        ...):

or if somehow you don't like validators.py depends on T(), then you
can:
(2) let the default error_message be easier customizable:
    class IS_NOT_IN_DB(...):
       error_message = 'value already in database' # class wide
       def __init__(self,
         ...
         error_message=None,
         ):
         if not error_message:
            self.error_message = error_message

so in app's model file we can:
  IS_NOT_IN_DB.error_message = T('value already in database!') # class
wide
  ...
  db.Field('foo',
    requires=IS_NOT_IN_DB(db,"table.field"))
  db.Field('bar',
    requires=IS_NOT_IN_DB(db,"table.field2"))


Same proposal applies to all other validators.

Regards,
Iceberg
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to