Sorry, what I use not my own conversation, but I try to change
calendar widget for date field and have same problem like RipRyness
had.
I create small application just to recreate this problem:
============
In model:
============
T.force('it') # force internationalization to change date format to %d/
%m/%Y
db.define_table('atable',
Field('a','date',requires=IS_NULL_OR(IS_DATE(str(T('%Y-
%m-%d')))),widget=SQLFORM.widgets.date.widget),
Field('b','date',requires=IS_NULL_OR(IS_DATE(str(T('%Y-
%m-%d'))))))
============
In controller:
============
def index():
return dict(form=crud())
def data():
return dict(form=crud())
============
In view:
============
{{extend 'layout.html'}}
{{=form}}
============
Let's try to add row with form at 'default/index/create/atable'. Put
proper formatted date 31/08/2010 to field A and and incorrect date
01/08/201 to field B. After submitting this form, I got normal red
message about error in field B, but date in field A changed from
31/08/2010 to 2010-08-31. This effect happens if I change widget. For
this test I use native widget for date - SQLFORM.widgets.date.widget,
but have described problem. But if I remove
widget=SQLFORM.widgets.date.widget from Field A, all works fine, with
correct date format. I use web2py 1.83.2