Hi Villas

I like the idea of getting the ID from a var instead of args, however I am 
still not sure how to go about getting the ID of the current record I am 
viewing/editing in smartgrid.

Forgive my noobishness.

M

On Monday, 19 November 2012 08:57:09 UTC, villas wrote:
>
> If you cannot control the order of args,  you could still look for an 
> int,  but that may not always be reliable.  I sometimes decide to use vars 
> instead.  Then you know exactly what you have:  your/url/here?id=1234
> Construction of the url is easy using the URL helper.
>
> On Friday, November 16, 2012 12:45:35 PM UTC, Mike H wrote:
>>
>> I am using smartgrid for the membership database I am building.
>>
>> I have 3 tables, contact (the members contact details and name), courses 
>> (any courses the member is doing with us) and membership (the users 
>> membership details).
>>
>> I am using conditionals to present customised view of the generated forms 
>> tables and records, basically a little dashboard that will sit above the 
>> contact/member/course details giving an overview of that contact. However I 
>> am struggling to extract the row id for the contact in order to pull up 
>> data for my dashboard.
>>
>> The following is the URL I get when viewing a contact with the id 11: 
>> 27.0.01:8000/MYDB/default/contact_manage/t_contact/t_membership.f_contact_id/11/view/t_membership/11
>>
>> On this particular url I can get the id using:
>> request.args(2)
>>
>> However the postion of the id is not the same on every page  for example 
>> when I view another contact (12) I get this URL:
>>
>> http://127.0.01:8000/ILSPA_DB2/default/contact_manage/t_contact/view/t_contact/12
>>
>> The argument with the position 2 is t_contact not 12.
>>
>> Is there some voodoo I can use to get the id of the entry in order to use 
>> it to pull up data from other tables?
>>
>> FYI I have included a snippet from the controller and corresponding view.
>>
>> Controller code:
>>
>> @auth.requires_login()
>> def contact_manage():
>>     memberId = request.args(2)
>>     form = SQLFORM.smartgrid(db.t_contact,linked_tables=['t_courses',
>> 't_membership','t_paypal'], onupdate=auth.archive, formname="Contact 
>> Manager")
>>     return locals()
>>
>> View Code:
>>
>> {{extend 'layout.html'}}
>>
>> {{if 'view' in request.args:}}
>> <p>Do something with {{=memberId}}</p>
>> <h2>Manage Contact</h2><p>{{=form}}</p>
>> {{else:}}
>> <h2>Manage Contact</h2><p>{{=form}}</p>
>> {{pass}}
>>
>> Thanks in advance.
>>
>> Mike
>>
>

-- 



Reply via email to