I would do:
db.define_table(
'shoe',
Field('model',db.model),
Field('purchased','date'),
Field('price','integer'),
auth.signature, # include created_by and created_on
format=lambda r: '%s %s %s' % (r.model.manufacturer.name
,r.model.model,r.purchased))
along with a common filter as you suggested:
db.shoe._common_filter = lambda query: db.shoe.created_by == auth.user_id
Massimo
On Saturday, 3 January 2015 13:00:24 UTC-6, Gary Cowell wrote:
>
> Hello
>
> Sorry for the probably obvious questions, but I do search for answers
> honest :)
>
> Anyway, what I want is for my table rows to be user specific. Such that
> when each user registers, the database looks empty to them, until they
> start creating rows in their forms.
>
> I have added these definitions to each table:
>
> db.define_table(
> 'shoe',
> Field('model',db.model),
> Field('purchased','date'),
> Field('price','integer'),
> Field('created_on', 'datetime',
> default=request.now, update=request.now, writable=False),
> * Field('created_by', 'reference auth_user',*
> * default=auth.user_id, update=auth.user_id, writable=False),*
> format=lambda r: '%s %s %s' % (r.model.manufacturer.name
> ,r.model.model,r.purchased))
>
> So I've added created_by referencing auth_user, and this places the logged
> in user into the row
>
> I could add code to the controller, the simple controller looks like
>
> @auth.requires_login()
> def shoe():
> form = SQLFORM(db.shoe)
> if form.process().accepted:
> response.flash = 'form accepted'
> elif form.errors:
> response.flash = 'form has errors'
> else:
> response.flash = 'please fill out the form'
> return dict(form=form)
>
> Perhaps with a SQLFORM.factory somehow?
>
> Or is CRUD the way to go? I have no idea about CRUD yet (nor much of an
> idea about most of this right now, but I'm learning)
>
> Or perhaps using common_filter? Somehow like this:
>
> table._common_filter = lambda query: db.shoe.created_by == auth.user.id
>
> I don't mind really which way this gets done, but if there's a canonical way,
> or a best practice way, I'd like to learn that, instead of the 'wrong but
> works' way.
>
> Thanks!
>
> Gary
>
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.