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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to