[web2py] best practices for displaying a a subset of a tables columns?

2012-06-04 Thread bob

In the old days I would just create a database view on a subset of a table 
that I wanted to allow other developers to access (assuming read only),  
however I'm not sure if that's the best thing to do with web2py.

I have a table that has:

last_name
first_name
etc
including some 'internal' columns that I don't want to expose on any form 
or service.

Any thoughts on the best way to implement this?

I'm thinking:

a:   database view (postgresql in this case),  issues being no 'id' in the 
view and I'm not sure how best to maintain that.

b:   a new .py that takes the full record and returns the subset.   upside 
- it would be a single point of maintenance,  question is where would this 
live  (in the models, it's not a controller so it doesn't really fit there)?

c:  ??

thanks for any suggestions,
bobm



Re: [web2py] best practices for displaying a a subset of a tables columns?

2012-06-04 Thread Richard Vézina
Johann answer here:
https://groups.google.com/forum/?fromgroups#!topic/web2py/0VpTEoZ1tkc

Anthony almost at the end of this thread :
https://groups.google.com/forum/?fromgroups#!topic/web2py/b5VgstnvY3Y


For the postgres views, you can define them as they were tables and set a
restricted access permission on them with RBAC built-in web2py, so, for
view you could have read and select of a record the other CRUD permissions
will not be available to all user, since you can't create new record for a
view, update or delete them. You will need that your view contain at least
a fake ID unique field to make it works with web2py.

About views I don't know if it best practice, but it works quite well for
me. An other solution, is to define you views into web2py as set : your_set
= db(db.table.field == something_that_filter)

And then use the set in select when you are ready :

your_set.select(db.table.ALL) # for example if you want all the column
your_set.select(db.table.f1, db.table.f2, etc.) # if you want only
particular columns


Hopes it help.

Richard

On Mon, Jun 4, 2012 at 8:56 AM, bob bmacc...@gmail.com wrote:


 In the old days I would just create a database view on a subset of a table
 that I wanted to allow other developers to access (assuming read only),
 however I'm not sure if that's the best thing to do with web2py.

 I have a table that has:

 last_name
 first_name
 etc
 including some 'internal' columns that I don't want to expose on any form
 or service.

 Any thoughts on the best way to implement this?

 I'm thinking:

 a:   database view (postgresql in this case),  issues being no 'id' in the
 view and I'm not sure how best to maintain that.

 b:   a new .py that takes the full record and returns the subset.   upside
 - it would be a single point of maintenance,  question is where would this
 live  (in the models, it's not a controller so it doesn't really fit there)?

 c:  ??

 thanks for any suggestions,
 bobm