my exact code :
def on_define_default_size(table):
# compute
#table.total_square_meter.compute = lambda r: (float(r['length_in_cm'] ) *
float(r['width_in_cm'] ) ) / 10000
# label
table.name.label = T('Name')
table.length_in_cm.label = T('Length in Cm')
table.width_in_cm.label = T('Width in Cm')
table.total_square_meter.label = T('Total Square Meter')
table.acquisition_price.label = T('Acquisition Price')
table.selling_price.label = T('Selling Price')
# notnull
table.name.notnull = True
table.length_in_cm.notnull = True
table.width_in_cm.notnull = True
#table.total_square_meter.notnull = True
table.acquisition_price.notnull = True
table.selling_price.notnull = True
# readable
table.total_square_meter.readable = not new_or_edit_grid
# represent
table.length_in_cm.represent = lambda value, field: locale.format("%.1f",
value, grouping = True)
table.width_in_cm.represent = lambda value, field: locale.format("%.1f",
value, grouping = True)
table.total_square_meter.represent = lambda value, field:
locale.format("%.3f", value, grouping = True)
table.acquisition_price.represent = lambda value, field: format(value,
",d").replace(",", ".")
table.selling_price.represent = lambda value, field: format(value,
",d").replace(",", ".")
# required
table.name.required = True
table.length_in_cm.required = True
table.width_in_cm.required = True
#table.total_square_meter.required = True
table.acquisition_price.required = True
table.selling_price.required = True
# requires
table.name.requires = IS_NOT_EMPTY()
table.length_in_cm.requires = IS_NOT_EMPTY()
table.width_in_cm.requires = IS_NOT_EMPTY()
#table.total_square_meter.requires = IS_NOT_EMPTY()
table.acquisition_price.requires = IS_NOT_EMPTY()
table.selling_price.requires = IS_NOT_EMPTY()
# writable
table.total_square_meter.writable = not new_or_edit_grid
db.define_table('default_size',
Field('name'),
Field('length_in_cm', 'double'),
Field('width_in_cm', 'double'),
Field('total_square_meter', 'double'),
Field('acquisition_price', 'integer'),
Field('selling_price', 'integer'),
auth.signature,
on_define = on_define_default_size,
format = lambda r: '%s x %s x %s' % (r.name, r.length_in_cm, r.width_in_cm)
)
yes, you all right, thank you so much, my bad, i understand now, it's
better to disable notnull, required and requires for the compute field or
either disable the compute in the backend database and use compute in
controller instead for the mandatory compute field.
at first i think the factor of the calculation field (length_in_cm and
width_in_com already filled in the table, so just update the acquisition
field and do the compute formula base on the filled value in the table).
thanks and best regards,
stifan
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.