Worked like a charm thanks! On Monday, August 5, 2013 4:18:45 PM UTC-4, viniciusban wrote: > > You must set writable=False and readable=False in your "user_id" field. > > On Mon, Aug 5, 2013 at 4:20 PM, hunt graham > <thedevil...@gmail.com<javascript:>> > wrote: > > Hello all, > > > > Been using web2py for about a week and loving it so far. In particular > the > > built in access control is great coming from Flask. > > > > I'm having some issues referencing auth_user from other db fields > though. > > In the following view (company.html) I have a SQLFORM for the 'company' > > table. How do I set the user_id field of the company form to default to > > whatever the current logged in user's ID is? I tried adding a field > called > > user_id to the company table, but for some reason it causes the form to > > invalidate every time. > > > > I have the following code within the models folder in another file > called > > db_tasks.py: > > > > # Define company table > > db.define_table('company', > > Field('company_name', notnull=True, unique=True), > > Field('user_id', db.auth_user, default=auth.user_id), > > Field('email'), > > Field('phone', notnull=True), > > Field('url'), > > format = '%(company_name)s') > > > > And an my regular db.py file: > > > > db = DAL('sqlite://storage.sqlite',pool_size=1,check_reserved=['all']) > > auth = Auth(db) > > > > # Add extra user fields > > auth.settings.extra_fields['auth_user'] = [ > > Field('address'), > > Field('city'), > > Field('zip'), > > Field('image', 'upload'), > > ] > > > > The controller for company. When I navigate to this view the User field > > shows up in the data grid, but not in the forms. (And I don't want it > to, I > > just want it to be set to whatever user is logged in, i.e. auth.user). > For > > whatever reason the form won't validate. I think it has something to do > > with the model. > > > > @auth.requires_login() > > def company(): > > # init a form object for 'company' table > > company_form = SQLFORM(db.company).process() > > # init a grid object for 'company' table > > grid = SQLFORM.grid(db.company, create=False, deletable=False, > > editable=False, maxtextlength=50, orderby=db.company.company_name) > > return locals() > > > > Here's the view for company: > > > > {{extend 'layout.html'}} > > > > <h2>Add a new company:</h2> > > <br/> > > > > {{=company_form.custom.begin}} > > <strong>Company > > Name</strong><br/>{{=company_form.custom.widget.company_name}}<br/> > > <strong>Email</strong><br/>{{=company_form.custom.widget.email}}<br/> > > <strong>Phone</strong><br/>{{=company_form.custom.widget.phone}}<br/> > > <strong>URL</strong><br/>{{=company_form.custom.widget.url}}<br/> > > {{=company_form.custom.submit}} > > {{=company_form.custom.end}} > > > > <br/> > > <br/> > > <h2>All Companies:</h2> > > <br/> > > {{=grid}} > > > > Thanks! > > --Hunt > > > > > > > > > > > > -- > > > > --- > > 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+un...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > >
-- --- 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.