You can pad that like this :

prefs_id = db(db.unique_view_peruser.auth_user_id == auth.user_id).select(
db.unique_view_peruser.id)
if len(prefs_id) == 1:
    prefs_id = prefs_id.id
else:
    prefs_id = None

If you pass None as a record, SQLFORM is in creation mode, if you pass a
record id it will be in update mode with the record data already populated
which you can modify and submit...

Richard

On Fri, Mar 27, 2015 at 10:50 AM, LoveWeb2py <atayloru...@gmail.com> wrote:

> This is perfect, Richard!! Thank you!
>
> I didn't realize how record worked. That is really an eye opener. If there
> is no record for the user I get an error, so I'll have to work on that, but
> this is exactly what I was looking for. Thank you!
>
> On Friday, March 27, 2015 at 10:38:51 AM UTC-4, Richard wrote:
>>
>> You don't give the record id to the SQLFORM(table, *record*)
>>
>> If you pass the record id of you stored app parameters you should be able
>> to update the user prefs instead of creating new record prefs each time...
>>
>> Read SQLFORM doc in book chapter "Forms" 7 I think...
>>
>> In you case, you will have to retrieve unique_view_peruser record id
>> first with a query like so :
>>
>> prefs_id = db(db.unique_view_peruser.auth_user_id ==
>> auth.user_id).select(db.unique_view_peruser.id).first().id
>>
>> Then
>>
>> SQLFORM(db.unique_view_peruser, record=prefs_id)
>>
>> You should be ok to update the right record instead of create a new one...
>>
>> Richard
>>
>> On Fri, Mar 27, 2015 at 10:12 AM, LoveWeb2py <atayl...@gmail.com> wrote:
>>
>>> Hi Richard,
>>>
>>> Thank you for responding.
>>>
>>> I'm basically letting a user create their own view for SQLFORM.grid, by
>>> choosing which fields to use by selecting them.
>>>
>>> db.unique_view_peruser is my table which allows each user to go and
>>> check the boxes of the fields they want to view. It's just booleans that
>>> are set to On or Off.
>>>
>>> Whatever they choose I want to select the fields in another table (which
>>> mirror the unique_view_peruser). The problem is each time I access
>>> SQLFORM(db.unique_view_peruser) it simply inserts the record instead of
>>> retrieves the previous selection. I know this is something which has to
>>> reference the db.auth_user.id, but it doesn't seem to be working the
>>> way I had imagined.
>>>
>>> On Friday, March 27, 2015 at 10:00:49 AM UTC-4, Richard wrote:
>>>>
>>>> If you only want the user to see the data but not edit :
>>>> readonly=True...
>>>>
>>>> Richard
>>>>
>>>> On Fri, Mar 27, 2015 at 9:59 AM, Richard Vézina <ml.richa...@gmail.com>
>>>> wrote:
>>>>
>>>>> You mean a profile page with user only allow to update their profile ??
>>>>>
>>>>> SQLFORM(db.auth_user, record=*auth.user_id*)
>>>>>
>>>>> It is not clear to understand your goal...
>>>>>
>>>>> Richard
>>>>>
>>>>> On Fri, Mar 27, 2015 at 9:32 AM, LoveWeb2py <atayl...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I have a database with a few hundred users. How could I allow them to
>>>>>> each have their own SQLFORM without modifying auth.user
>>>>>>
>>>>>> here is what I have so far:
>>>>>>
>>>>>>
>>>>>> #model
>>>>>> db.define_table('unique_view_peruser','
>>>>>>         Field('auth_user_id',' db.auth_user, default=auth.user_id,
>>>>>> writable=False),
>>>>>>         Field('field1','boolean'),
>>>>>>         Field('field2','boolean'),
>>>>>>         migrate=False)
>>>>>>
>>>>>> #controller
>>>>>> def unique_view():
>>>>>>      grid = SQLFORM(db.unique_view_peruser)
>>>>>>      return dict(grid=grid)
>>>>>>
>>>>>> when I click on the boolean buttons they're not being updated or
>>>>>> insert into the database. I'm using MYSQL and each field is specified as 
>>>>>> a
>>>>>> boolean.
>>>>>>
>>>>>> How could I allow each user to come to the view, click on the
>>>>>> different fields they'd like and have it insert the database. Will it
>>>>>> automatically create the record for them if they don't have a record
>>>>>> associated with their id?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>
>>>>>>  --
>>>>>> 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+un...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>  --
>>> 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+un...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> 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/d/optout.
>

-- 
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/d/optout.

Reply via email to