Я пытаюсь, чтобы эта функция ограничивала пользователя одним голосом за изображение.Однако в настоящее время он пропускает все голоса.Если я изменю «ifisting_vote! = 0:» на «ifisting_vote == 0:», он не пропустит ни одного голоса.Мысли?
класс VoteHandler (webapp.RequestHandler):
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 & 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('/', { })
Для моделей:
класс User (db.Model):
account = db.StringProperty ()
пароль = db.StringProperty ()
name = db.StringProperty ()
создал = db.DateTimeProperty (auto_now =True)
Изображение класса (db.Model):
user = db.ReferenceProperty (Пользователь)
photo_key = db.BlobProperty ()
website = db.StringProperty ()
text = db.StringProperty ()
создал = db.DateTimeProperty (auto_now = True)
голос = = дБ.IntegerProperty (по умолчанию = 1)
класс Голосование (db.Model):
user = db.ReferenceProperty (Пользователь) # См., Если на этом сайте еще проголосовали
photo = db.ReferenceProperty (Image) # Чтобы применить голосование к нужному URL-адресу
upvote = db.IntegerProperty (по умолчанию = 1)
создал = db.DateTimeProperty (auto_now =Правда)