On Friday, 3 May 2013 23:59:51 UTC+10, Anthony wrote:
>
> How did the record get created to begin with? Did it start with a
> cm_patient_id value of 0? Are you sure you committed your change when using
> the database management tool?
This works:
I open up the grid in web2py, and click on the button "Match Patients"
which invokes the controller match_patient, allowing me to edit that record.
I match the patient, which updates the foreign key cm_patient_id via the
requires=IS_IN_DB.
The calculated fields works too.
So if I go to Management Studio and look at the table, I can see the
foreign key (an integer) and the the calculated field (a string). So I'm
definitely convinced that the edit of the record in the SQLFORM of
match_patient() is committing.
Going back to web2py, if I refresh the SQLFORM.grid or enter it again, at
that point the table is reset. The foreign key is set to 0, which is the
default value, and the calculated field is set to NULL. Other fields are
unaffected. Is it a database migration? (migrate = False in the model). The
fact the the calculated field is set to NULL is probably not as interesting
as the resetting of cm_patient_id.
(if I change the table definition in Management Studio so that the default
value is 99, then opening the controller which displays the grid puts 99 in
every row (inspected via Management Studio)
Then I can edit the definition to make the default value 55, refresh the
controller and I get 55 in every row.
So the grid is wiping out that field and the database replaces it with the
default value.
I guess there is something wrong with my table definition.
This is what I have right now (I've disabled the compute)
db_vciadmin = DAL('mssql://tim:xxx@vci-win2003\hcnsql07/vciadmin',
lazy_tables=True,pool_size=10)
.
.
.
db_vciadmin.define_table("web_form_1te",
Field("patient_details_id",'integer',unique=True),
Field("date_submitted","date"),
Field("first_name","string"),
Field("surname","string"),
Field("dob","date"),
#Field("cm_patient_id","reference cm_patient"),
Field("cm_patient_id","integer"),
#Field("patient","string", compute=lambda r:
patient_name(r['cm_patient_id'])),
Field("patient","string"),
format='%(first_name)s %(surname)s',
migrate=False
)
--
---
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/groups/opt_out.