db.EventList.endDate.represent = lambda v: v.strftime('%d/%m/%Y') if v else
''
or
db.EventList.endDate.represent = lambda v: v and v.strftime('%d/%m/%Y') or
''
Anthony
On Thursday, April 19, 2012 4:36:43 AM UTC-4, Annet wrote:
>
> I defined a table EventList:
>
> db.define_table('EventList',
> Field('nodeID','reference
> Node',default='',notnull=True,ondelete='CASCADE',writable=False,readable=False),
> Field('summary',length=128,default='',notnull=True),
> Field('startDate',type='date'),
> Field('endDate',type='date'),
> ...
> migrate=False)
>
> db.EventList.nodeID.requires=[IS_IN_DB(db,'Node.id','%(id)s',zero='select
> a value')]
> db.EventList.nodeID.represent=lambda nodeID, row:
> db(db.Organization.nodeID==nodeID).select().first().name
> db.EventList.summary.requires=[IS_LENGTH(128,error_message='length exceeds
> 128 characters'),IS_NOT_EMPTY()]
> db.EventList.summary.label='Titel * '
> db.EventList.startDate.requires=IS_DATE(format='%Y-%m-%d')
> db.EventList.startDate.represent = lambda v: v.strftime('%d/%m/%Y')
> db.EventList.endDate.requires=IS_EMPTY_OR(IS_DATE(format='%Y-%m-%d'))
> db.EventList.endDate.represent = lambda v: v.strftime('%d/%m/%Y')
>
> When endDate is empty, I get the following error:
>
> Is there a way to
>
> Traceback (most recent call last):
> File "/Library/Python/2.5/site-packages/web2py/gluon/restricted.py", line
> 205, in restricted
> exec ccode in environment
> File
> "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/views/appadmin.html"
> <http://127.0.0.1:8000/admin/default/edit/bootstrap/views/appadmin.html>,
> line 180, in <module>
> <div class="hidden" id="ram_keys">
> File "/Library/Python/2.5/site-packages/web2py/gluon/sqlhtml.py", line
> 2278, in __init__
> r = represent(field,r,record)
> File "/Library/Python/2.5/site-packages/web2py/gluon/sqlhtml.py", line 46,
> in represent
> return f(value)
> File
> "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/models/10_table_db.py"
> <http://127.0.0.1:8000/admin/default/edit/bootstrap/models/10_table_db.py>,
> line 678, in <lambda>
> db.EventList.endDate.represent = lambda v: v.strftime('%d/%m/%Y')
> AttributeError: 'NoneType' object has no attribute 'strftime'*
> *
>
>
>
> Is there a way to solve this problem?
>
>
> Kind regards,
>
> Annet.
>
>
>
>
>
>