here is the database definition:

db.define_table('contest', Field('name', length=128 ),
Field('contest_host', length=128,), Field('duration', 'time' ),
Field('time_passed','time', default = 0), Field('rank_frozen','time',
default = 0), Field('running',length= 10, readable=False, default = "no"),
Field('lang'))

db.contest.name.requires = [IS_NOT_IN_DB(db,db.contest.name),
IS_NOT_EMPTY()]
db.contest.contest_host.requires = [IS_NOT_EMPTY()]
db.contest.duration.requires = [IS_NOT_EMPTY()]
db.contest.lang.requires=IS_IN_SET(['C', 'C++', 'JAVA', 'Python'],
multiple=True)
db.contest.lang.widget = hmultiselect_widget


then here is my controller which will show the SQLFORM Grid:
@auth.requires_permission('manage')
def configure():
    grid = SQLFORM.grid(db.contest,fields = [db.contest.id, db.contest.name,
db.contest.contest_host, db.contest.duration, db.contest.time_passed ,
db.contest.rank_frozen],create=False, links = [contest_buttons] ,
 details=False )
    return dict(grid = grid)

Then here is my code which will flip the value of db.contest.running
def flip_contest_status():
    id = request.post_vars.id
    row = db(db.contest.id == id).select(db.contest.running, db.contest.name
).first()
    value = ""
    if row.running == 'no':
        value = 'yes'
        #session.flash = row.running
    elif row.running == 'yes':
        value = 'no'
        #session.flash = row.running
    else:
        abd = "sd"
    db(db.contest.id == id).update(running = value)
    session.flash = row.running
    return locals()


Here is my db.contest table:

contest.id<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.id>
contest.name<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.name>
contest.contest_host<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.contest_host>
contest.duration<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.duration>
contest.time_passed<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.time_passed>
contest.rank_frozen<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.rank_frozen>
contest.running<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.running>
contest.lang<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.lang>
13 <http://localhost:8000/SAI_BETA/appadmin/update/db/contest/13>Testme
07:33:5306:33:5406:33:55no|C++|14<http://localhost:8000/SAI_BETA/appadmin/update/db/contest/14>
faiyaz26me06:34:2307:34:2206:34:25no|C|

I used session.flash to check what kind of value is fetching, and it is
showing *yes* for contest.id = 13 and 14

If i update the value of db.contest.running for db.contest.id =13 to yes
from no, it shows *no* then

what to do then ?

You can download the whole w2p file from here:
https://dl.dropboxusercontent.com/u/34972503/web2py.app.SAI_BETA.w2p

username: administrator
pass: admin1234

then go to contest/configure to check !! use start , stop button to update
the status.

On Tue, Jul 2, 2013 at 8:40 AM, Anthony <abasta...@gmail.com> wrote:

> Can you show the code you are now using and describe the workflow of how
> the record gets updated and how you are then attempting to view the updated
> record?
>
> Anthony
>
> On Monday, July 1, 2013 8:37:32 PM UTC-4, Ahmad Faiyaz wrote:
>
>> weird things happening, when i check the db table with appadmin, it shows
>> for contest.running = yes [ updated the value with sqlform.grid ] , but
>> when i fetch the row with DAL on app, it shows contest.running = no [ which
>> is the default ]
>>
>> why ?
>>
>> On Tue, Jul 2, 2013 at 6:18 AM, Ahmad Faiyaz <faiy...@gmail.com> wrote:
>>
>>> thanks, but it sometimes work, sometimes doesn't !! what can be the
>>> problem !
>>>
>>> On Tue, Jul 2, 2013 at 5:34 AM, Alex <mrau...@gmail.com> wrote:
>>>
>>>> from the documentation:
>>>> update_record should not be confused with
>>>> >>> row.update(name='Curt')
>>>> because for a single row, the method update updates the row object but
>>>> not the database record, as in the case of update_record
>>>>
>>>> so you should use update_record instead. or even better:
>>>> db(db.contest.id == id ).update(running = value)
>>>>
>>>> which only results in one sql statement.
>>>>
>>>> Alex
>>>>
>>>> Am Dienstag, 2. Juli 2013 00:23:16 UTC+2 schrieb Ahmad Faiyaz:
>>>>
>>>>> Hello,
>>>>> i am trying to update a row on a db table, but it is not updating,
>>>>> what is the problem ?
>>>>>
>>>>> my db table definition:
>>>>> db.define_table('contest', Field('name', length=128 ),
>>>>> Field('contest_host', length=128,), Field('duration', 'time' ),
>>>>> Field('time_passed','time', default = 0), Field('rank_frozen','time',
>>>>> default = 0), Field('running',length= 10, readable=False, default = "no"),
>>>>> Field('lang'))
>>>>>
>>>>> My update function:
>>>>>
>>>>> def flip_contest_status():
>>>>>     id = request.post_vars.id
>>>>>     row = db(db.contest.id == id ).select().first()
>>>>>     value = "no"
>>>>>     con =  row.running
>>>>>     if con is "no":
>>>>>         value = "yes"
>>>>>     db(db.contest.id == id ).select().first().update(**running =
>>>>> value)
>>>>>     session.flash = row.name + " mode changed to "+ value
>>>>>     return locals()
>>>>>
>>>>> it doesn't update my db row !!
>>>>>
>>>>> What to do ?
>>>>>
>>>>>  --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "web2py-users" group.
>>>> To unsubscribe from this topic, visit https://groups.google.com/d/**
>>>> topic/web2py/1YuETESUji8/**unsubscribe<https://groups.google.com/d/topic/web2py/1YuETESUji8/unsubscribe>
>>>> .
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> web2py+un...@**googlegroups.com.
>>>>
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Regards,
>>> Ahmad Faiyaz
>>>
>>
>>
>>
>> --
>>
>> Regards,
>> Ahmad Faiyaz
>>
>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/1YuETESUji8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



-- 

Regards,
Ahmad Faiyaz

-- 

--- 
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/groups/opt_out.


Reply via email to