It's still creating a new record rather than updating. So I've still got 
something wrong. I need to look over the code and see if I can find 
anything that sticks out.

On Sunday, August 10, 2014 4:07:57 PM UTC-4, Massimo Di Pierro wrote:
>
> I agree that you only seem to need one form. If this is the case there 
> should not be problems. Can you confirm?
>
> Massimo
>
> On Sunday, 10 August 2014 12:58:06 UTC-5, Drew Howell wrote:
>>
>> The purpose of the app/page is to track progress of a workout routine. It 
>> is a 5 week / 35 day schedule. I have all the "static" information stored 
>> in the table (Day, Week, Workout Name), but there are 2 other fields in the 
>> table that would need to be updated: "rating" which is where you rate your 
>> performance (1-4) entered via radio buttons, and "completed" which can be 
>> either 0, 1, or 2 (0=complete, 1=current, 2=locked) and is automatically 
>> changed to 0 when the form is submitted.
>>
>> I am generating the page by iterating through the records in the table 
>> and displaying them (see here for example 
>> <https://drewhowell.pythonanywhere.com/TwoFiveTracker/default/workouts.html>).
>>  
>> I realize now that I really only need 1 form, which is for the current day. 
>> The user will select a radio button and click submit. It should then update 
>> the "rating" field as well as the "completed" field. After the form is 
>> submitted the page is generated again, but the next day will be the 
>> "current" day with the form. I apologize if that's confusing, but the best 
>> way to understand it is looking at the example 
>> <https://drewhowell.pythonanywhere.com/TwoFiveTracker/default/workouts.html>
>> .
>>
>> This is what I'm doing in my workouts.html View:
>>
>> {{for row in rows:}}
>>     {{if row.complete == 0:}}
>>         // completed day layout
>>     {{elif row.complete == 1:}}
>>         // current day layout
>>         {{=form}}
>>     {{else:}}
>>         ///locked day layout
>>     {{pass}}
>> {{pass}}
>>
>>
>> On Sunday, August 10, 2014 1:27:17 PM UTC-4, Massimo Di Pierro wrote:
>>>
>>> That's it then. You cannot have multiple forms on the same type on one 
>>> page unless they refer to different tables. There are other ways but it 
>>> really depends on what you are trying to do. Can you explain in words what 
>>> is the page supposed to do.
>>>
>>>
>>> On Sunday, 10 August 2014 11:11:05 UTC-5, Drew Howell wrote:
>>>>
>>>> I made the changes and switched to using {{=form}}, but It's still 
>>>> creating a new record. I just realized I didn't post a part of the view 
>>>> that might be causing the issue. I have multiple forms on a single page.
>>>>
>>>> ...
>>>>
>>>> {{=for row in rows:}}
>>>>
>>>>     {{=form}}
>>>>
>>>> {{pass}}
>>>>
>>>> ...
>>>>
>>>> Could that be causing the issue? I went ahead and uploaded what I have 
>>>> to Python Anywhere to help illustrate what I'm trying to do. You can check 
>>>> it out here 
>>>> <https://drewhowell.pythonanywhere.com/TwoFiveTracker/default/workouts> 
>>>> (the 
>>>> layout is slightly broken because of the vertical radio buttons, but that 
>>>> will be fixed next).
>>>>
>>>>
>>>>
>>>>
>>>> On Saturday, August 9, 2014 10:33:02 PM UTC-4, Massimo Di Pierro wrote:
>>>>>
>>>>> One problem is that you want to select after you process the form:
>>>>>
>>>>> def workouts():
>>>>>     r = db.workouts(request.args(0))
>>>>>     form = SQLFORM(db.workouts, r).process()
>>>>>
>>>>>     if form.accepted:
>>>>>        response.flash = 'form accepted'
>>>>>     elif form.errors:
>>>>>        response.flash = 'form has errors'
>>>>>
>>>>>     rows = db(db.workouts).select()
>>>>>     return locals()
>>>>>
>>>>> Also instead of using a custom form (unless you really need one), I 
>>>>> suggest you do {{=form}} in view and 
>>>>>
>>>>> make the fields that you do not need in the form Field(..., 
>>>>> readable=False, writable=False)
>>>>>
>>>>> On Saturday, 9 August 2014 20:01:51 UTC-5, Drew Howell wrote:
>>>>>>
>>>>>> I'm new to Web2Py, so I am creating a (what I thought was a) simple 
>>>>>> app that tracks progress of a workout routine. I have a database 
>>>>>> (db.workouts) that has information such as Workout Name, Rating, 
>>>>>> Completed, 
>>>>>> etc. I have 2 fields(rating, completed) I would like to update via a 
>>>>>> form. 
>>>>>> I have tried a couple different methods, but can't seem to get anything 
>>>>>> to 
>>>>>> work correctly. The other fields are already entered in the table and 
>>>>>> should not be changed.
>>>>>>
>>>>>> "Rating" should be updated by a set of radio buttons and "Completed" 
>>>>>> should be set to 0 when the form is submitted (0=complete, 1=current, 
>>>>>> 2=locked). I have created the form, but have done something wrong 
>>>>>> because, 
>>>>>> when it is submitted, a new record is created rather than updating the 
>>>>>> existing one. 
>>>>>>
>>>>>> *Here is my code:*
>>>>>>
>>>>>> *Model:*
>>>>>>
>>>>>> db.define_table('workouts',
>>>>>>                 Field('stage'),
>>>>>>                 Field('w', type="integer"),
>>>>>>                 Field('workout'),
>>>>>>                 Field('complete', type="integer"),
>>>>>>                 Field('d', type="integer"),
>>>>>>                 Field('rating', requires=IS_IN_SET([1, 2, 3, 4 ]), 
>>>>>> widget=SQLFORM.widgets.radio.widget),
>>>>>>                 auth.signature
>>>>>>                 )
>>>>>>
>>>>>> *Controller:*
>>>>>>
>>>>>> def workouts():
>>>>>>     rows = db(db.workouts).select()
>>>>>>     
>>>>>>     r = db.workouts(request.args(0))
>>>>>>     form = SQLFORM(db.workouts, r)
>>>>>>
>>>>>>     if form.process().accepted:
>>>>>>        response.flash = 'form accepted'
>>>>>>     elif form.errors:
>>>>>>        response.flash = 'form has errors'
>>>>>>
>>>>>>     return locals()
>>>>>>
>>>>>> *View:*
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> {{=form.custom.begin}}
>>>>>>     {{=form.custom.widget.rating}}
>>>>>>     {{=form.custom.submit}} 
>>>>>> {{=form.custom.end}}
>>>>>>
>>>>>> ...
>>>>>>
>>>>>>
>>>>>> As I mentioned earlier, I am new and I may be going about this 
>>>>>> completely the wrong way. So any help would be greatly appreciated. I 
>>>>>> can 
>>>>>> provide more information if needed. 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to