db.define_table('store_registration',
Field('first_name', requires=IS_NOT_EMPTY()),
Field('last_name', requires=IS_NOT_EMPTY()),
Field('contact_number', label=SPAN('Cell Number'), requires=IS_NOT_EMPTY()),
Field('id_number', requires=IS_NOT_EMPTY()),
Field('program', requires=IS_NOT_EMPTY()),
Field('level_is', label=SPAN('Level'), requires=IS_NOT_EMPTY()),
Field('module_is', label=SPAN('Module'), requires=IS_NOT_EMPTY()),
Field('branch', label=SPAN('Branch'), requires=IS_NOT_EMPTY()),
Field('residential_place', label=SPAN('Residence'), requires=IS_NOT_EMPTY()),
Field('region', 'reference auth_group', default=get_group(), writable=False), #*Here*
Field('recorded_by', 'reference auth_user', default=auth.user_id, writable=False),
format="%(first_name)s %(last_name)s"
)
db.define_table('temperatures',
Field('employee', 'reference store_registration', writable=False),
Field('branch', 'reference store_registration', writable=False),
Field('temperature', requires=IS_NOT_EMPTY()),
Field('ID_No', 'reference store_registration', writable=False),
Field('Cell_No', 'reference store_registration', writable=False),
Field('residential', 'reference store_registration', writable=False))
def client_details():
details=db.store_registration(request.args(0, cast=int))
db.temperatures.employee.default=details.id
db.temperatures.ID_No.default=details.id_number
db.temperatures.Cell_No.default=details.contact_number
db.temperatures.branch.default=details.branch
db.temperatures.residential.default=details.residential_place
form=SQLFORM(db.temperatures)
if form.process().accepted:
response.flash=T('Temp Recorded')
return locals()
<type 'exceptions.ValueError'> invalid literal for long() with base 10:
I read somewhere that this occurs because
reference fields are intended to store the integer record ID's of the referenced records, not copies of string
fields from referenced records.
Is there a way I can achieve my above task without causing this error?!
Regards;
Mostwanted
contact_number,
id_number,
branch,
residential_place
) to be unpacked & stored with the new details (temperature
) in the temperature table without me having to re-enter them again, isnt there a way for this?Field('store_registration_id', 'reference store_registration', writable=False),