From the documentation (link I provided earlier): "The update_record method is available only if the *table's id field is included in the select*, and cacheable is not set to True." Your select does not include the table's id field. In your case, that would be `db.ActivityMapping.id` ... I guess.

________________________________________
Kiran Subbaraman
http://subbaraman.wordpress.com/about/

On Wed, 10-08-2016 4:22 PM, madhu nomula wrote:
Yes  totalrecords decalred.

Updated the code like below in controller: But still throwing issue

Controller code:
@auth.requires_login()
def update_timesheet():

     totalrecords=0;
     rows = db((db.ActivityMapping.org_id==db.Organization.id)&
     (db.ActivityMapping.resource_id==db.auth_user.id)&
     (db.ActivityMapping.solution_id==db.Solution.id)&
     (db.ActivityMapping.activity_id==db.Activity.id)&

(db.auth_user.id==auth.user.id)&(db.ActivityMapping.activity_date==request.vars.activity_date)
              
).select(db.auth_user.first_name,db.Organization.short_name,db.Solution.solution_code,db.Activity.activity_name,db.ActivityMapping.effort,db.ActivityMapping.activity_date)

     for u in request.vars.org_id:
         totalrecords=totalrecords+1


     if totalrecords == 1:
         
rows.update_record(resource_id=auth.user.id,org_id=int(request.vars.org_id),solution_id=int(request.vars.solution_id),activity_id=int(request.vars.activity_id),effort=int(request.vars.effort))
     elif totalrecords>1:
         for m in request.vars.org_id:
             #e= e+ ' org: ' + str(m) + ' act: '+
str(request.vars.activity_id[i]) + ' soln: ' +
str(request.vars.solution_id[i]) +' effort: '+str(request.vars.effort)
             
rows.update(resource_id=auth.user.id,org_id=int(m),solution_id=int(request.vars.solution_id[i]),activity_id=int(request.vars.activity_id[i]),effort=int(request.vars.effort[i]))
             i=i+1

     return locals()
_________________________________________

View Code:
ajax('{{=URL('update_timesheet')}}',['org_id','solution_id','activity_id','effort','activity_date'],'target');
___________________

Model code:
db.define_table('ActivityMapping',
                 Field('mapping_id'),
                 Field('resource_id',db.auth_user),
                 Field('org_id',db.Organization),
                 Field('solution_id',db.Solution),
                 Field('activity_id',db.Activity),
                 Field('activity_date','datetime', requires=IS_DATE()),
                 Field('effort')
                 )

On Wed, Aug 10, 2016 at 9:52 AM, Kiran Subbaraman
<[email protected]> wrote:
In the controller, is your code entering the `if` checks? And am guessing
the totalrecords is initialized before you do a
`totalrecords=totalrecords+1`?
Noticed that you are using `update_record` and `update` in your code. Do
take a look at this:
http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer?search=update_record#update_record

________________________________________
Kiran Subbaraman
http://subbaraman.wordpress.com/about/

On Tue, 09-08-2016 10:43 PM, madhu nomula wrote:

Hi ,

In Web2 py tool

need sample code to update db table(module) from View value to --->
Controller code for updating:


View code
:
ajax('{{=URL('update_data')}}',['org_id','solution_id','activity_id','effort'],'target');


Controller code:

def update_data():

     for u in request.vars.org_id:
         totalrecords=totalrecords+1


     if totalrecords == 1:

db.ActivityMapping.update_record(resource_id=auth.user.id,org_id=int(request.vars.org_id),solution_id=int(request.vars.solution_id),activity_id=int(request.vars.activity_id),effort=int(request.vars.effort))
     elif totalrecords>1:
         for m in request.vars.org_id:
             #e= e+ ' org: ' + str(m) + ' act: '+
str(request.vars.activity_id[i]) + ' soln: ' +
str(request.vars.solution_id[i]) +' effort: '+str(request.vars.effort)

db.AM.update(resource_id=auth.user.id,org_id=int(m),solution_id=int(request.vars.solution_id[i]),activity_id=int(request.vars.activity_id[i]),effort=int(request.vars.effort[i]))
             i=i+1

     return locals()


Facing issue with above code,.

Regards,
MC
--
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.


--
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.

--
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.

Reply via email to