>
> db = DAL('sqlite://se2.sqlite',check_reserved=['postgres', 
> 'postgres_nonreserved'],pool_size=10,lazy_tables=False, migrate=True, 
> fake_migrate=False)
>  now I got right results:
> >>> db.ta._fields                                                         
>                                                                             
>  
> ['id', 'f1', 'newfield']
>
> *BUT it does not work in the web app*. session.flash = db.ta._fields - 
> giving me right result (['id', 'f1', 'newfield']) BUT in the table (app
> /appadmin) and SQLFORM.grid I don't have any change. Any idea why it is 
> not working in the app?
>

A DAL model exists only during a single request. If you create a model in 
one request, web2py won't know anything about that model in a subsequent 
request, unless that model is redefined on each request (of course the 
database table itself will persist, but on each request, you still need to 
generate a model of that table so web2py knows how to interact with the 
database).

Do you really need to allow database tables to be changed arbitrarily on a 
continual basis, or is there just some initial setup process to define the 
table structure? If the latter, you might consider an alternative for 
specifying a custom but fixed table definition on a one-time basis.

If you really need dynamic definitions, a better approach would probably be 
to store the metadata needed for the table definitions in a Python data 
structure (e.g., a dictionary of dictionaries). Then, to define the table 
in a model, parse the data structure to generate the arguments to 
db.define_table().

Another option would be to programmatically generate an actual model file 
(you could even use the web2py template language to do so). Whenever the 
table definition needs to change, re-generate the relevant model file.

Anthony

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

Reply via email to