Note that there are some explanatory texts on larger screens.

plurals
  1. POVoteHandler in Google App Engine
    primarykey
    data
    text
    <p>I am trying to have this function limit a user to only one vote per image. However it currently lets all votes through. If I change "if existing_vote != 0:" to "if existing_vote == 0:" it lets no votes through. Thoughts? </p> <p>class VoteHandler(webapp.RequestHandler):</p> <pre><code>def get(self): #See if logged in self.Session = Session() if not 'userkey' in self.Session: doRender( self, 'base/index.html', {'error' : 'Please login to vote'}) return #If user hasn't voted - if user doesn't have a vote on that image object key = self.request.get('photo_id') vurl = models.Image.get_by_id(int(key)) #pull current site vote total &amp; add 1 existing_vote = models.Vote.all().filter('user=', self.Session['userkey']).filter('photo=',vurl).count() if existing_vote != 0: self.redirect('/', { }) else: newvote = models.Vote(user=self.Session['userkey'], url=vurl) vurl.votes += 1 vurl.put() logging.info('Adding a vote') #Create a new Vote object newvote = models.Vote(user=self.Session['userkey'], url=vurl) newvote.put() self.redirect('/', { }) </code></pre> <p>For the Models:</p> <p><strong>class User(db.Model):</strong></p> <p>account = db.StringProperty()</p> <p>password = db.StringProperty()</p> <p>name = db.StringProperty()</p> <p>created = db.DateTimeProperty(auto_now=True)</p> <p><strong>class Image(db.Model):</strong></p> <p>user = db.ReferenceProperty(User)</p> <p>photo_key = db.BlobProperty()</p> <p>website = db.StringProperty()</p> <p>text = db.StringProperty()</p> <p>created = db.DateTimeProperty(auto_now=True)</p> <p>votes = db.IntegerProperty(default=1)</p> <p><strong>class Vote(db.Model):</strong></p> <p>user = db.ReferenceProperty(User) #See if voted on this site yet</p> <p>photo = db.ReferenceProperty(Image) #To apply vote to right URL</p> <p>upvote = db.IntegerProperty(default=1)</p> <p>created = db.DateTimeProperty(auto_now=True) </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload