your code never writes the updated votes string. and i'm not sure that using the "in" operator on a string like that will give you the results that you want.
you probably want another table say votelog db.define_table('voetlog', Field('content_id', 'reference content'), Field('user_id', 'reference auth_user) then check if logged in user has a record in votelog for that content before incrementing the content vote and adding a row to the votelog table. On Thursday, May 16, 2013 4:00:57 AM UTC-7, sasogeek wrote: > > can you give me an example code? > here's what i have but doesn't work. > #model > db.define_table('content', > Field('username'), > Field('text', 'text'), > Field('file', 'upload'), > Field('userpic'), > Field('time', 'datetime', update=request.now), > Field('userid', readable=False), > Field('votesup', 'integer', default=0), > Field('votesdown', 'integer', default=0), > Field('votes', 'text', default='0,'), > ) > > #controller > def voteup(): > item = db.content[request.args(0)] > if auth.user.id not in item.votes: > item.votes.join(str(auth.user.id)+',') > new_votes = item.votesup + 1 > item.update_record(votesup=new_votes) > return str(new_votes) > elif auth.user.id in item.votes: > return str(0) > > #view > <button style='margin-left:30px; margin-top:-17px;'> > <span onclick="jQuery('#content_votesup').val('{{=content.id}}'); > ajax('{{=URL('voteup', args=content.id)}}', ['votesup'], 'content0{{= > content.id}}');" > > <img src='../static/images/thumbsup.png' style='height:20px; > width:20px;'/> > </span> > <span id='content0{{=content.id}}' > > {{=content.votesup}} > </span> > </button> > > > > On Wednesday, 15 May 2013 15:22:28 UTC+1, Anthony wrote: >> >> Actually, as long as you are requiring users to register and log in, you >> might as well just associate each vote with a user ID -- then when a user >> votes, you can just check whether that same user has already voted. >> >> Anthony >> >> On Wednesday, May 15, 2013 10:10:44 AM UTC-4, sasogeek wrote: >>> >>> the book states this "although it is easy to change this behavior if >>> visitors are authenticated, by keeping track of the individual votes in the >>> database and associating them with therequest.env.remote_addr of the >>> voter." at this link >>> http://web2py.com/books/default/chapter/29/11#Voting-and-rating >>> >>> How do I do that? I don't understand... but I need that feature. The app >>> I'm building with it is already live though. feel free to check it out if >>> you want :) >>> http://sasogeek.pythonanywhere.com/uRate/default/index.html . However, >>> I really need the help! thanks >>> >> -- --- 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.