Thanks Edwin,
worked great
what_if_id=request.vars.WhatIfID line had to be added
here's the whole function below
much appreciated,
Alex
def add_what_if_vote():
form = SQLFORM(db.WhatIfVote)
if form.process().accepted:
response.flash = 'form accepted'
what_if_id=request.vars.WhatIfID
total_children = db(db.WhatIfVote.WhatIfID == what_if_id).count()
row = db(db.WhatIf.id==what_if_id).select().first()
row.update_record(numberOfTentativePartners=total_children)
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return dict(form=form)
On Sunday, April 14, 2013 2:10:23 AM UTC-7, Edwin Haver wrote:
>
> Hi Alex,
>
> You can use the following query to count the number of child records and
> then update the WhatIf table.
>
> total_children = db(db.WhatIfVote.WhatIfID == what_if_id).count()
> row = db(db.WhatIf.id==what_if_id).select().first()
> row.update_record(numberOfTentativePartners=total_children)
>
>
> Try if this works.
>
> Regards, Edwin.
>
>
> On Sunday, April 14, 2013 7:08:25 AM UTC+4, Alex Glaros wrote:
>>
>> When a user finishes adding a record in the WhatIfVote table, I want this
>> function below to find only the parent WhatIf record to have its field
>> numberOfTentativePartners have its contents replaced with the count of
>> number of WhatIfVote records for that parent.
>>
>> What is the syntax for selecting the parent only for this child, then
>> adding up all its children and replacing the current value of
>> numberOfTentativePartners with the new total?
>>
>> Here's a walkthough of how it would work:
>>
>> User adds a new WhatIfVote record. This is a child record.
>>
>> The function below then adds up all the children for the parent WhatIf
>> and updates the parent field called numberOfTentativePartners with the
>> total count of its children.
>>
>> Here is the function that I'm trying to write:
>>
>> def add_what_if_vote():
>> form = SQLFORM(db.WhatIfVote)
>> if form.process().accepted:
>> response.flash = 'form accepted'
>> ## PLEASE TYPE IN THE CORRECT SYNTAX FOR THE PSEUDO CODE IN THE LINE BELOW
>> Where WhatIf.id ==
>> WhatIfVote.WhatIfID(db.WhatIf.insert(numberOfTentativePartners=select count
>> of WhatIfVote where WhatIf.id == WhatIfVote.WhatIfID)
>> elif form.errors:
>> response.flash = 'form has errors'
>> else:
>> response.flash = 'please fill out the form'
>> return dict(form=form)
>>
>> %%%%%%%%%%% Models %%%%%%%%
>>
>> ## ----- Parent table -----------
>>
>> db.define_table('WhatIf', ## Table - What-if process.This table enables
>> What-If Analysis
>> Field('shorWhatIfDescription', 'string',label='Description'),
>> Field('numberOfTentativePartners', 'integer')) ## always derived by
>> counting number of WhatIfVote children records whenever a new WhatIfVote
>> child is added
>>
>>
>> ## ---- Child table ----------
>>
>> db.define_table('WhatIfVote', ## Whenever a new record is added, the
>> total children for the parent are totaled in the parent record in field
>> numberOfTentativePartners
>> Field('WhatIfID', 'reference WhatIf'),
>> Field('whatIfVoteComments', 'string'))
>>
>>
>> Thanks,
>>
>> Alex Glaros
>>
>
--
---
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/groups/opt_out.