def get(self, entity_id=None):
    
    user = users.get_current_user()
    profile = Profile.all().filter("account = ", user).get()
    monster = Monster.get_by_id_safe(int(entity_id), profile)
    
    if (not monster) or (not profile):
      return self.forbidden()
      
    previous_vote = Vote.all().filter("voter = ", profile).filter("monster = ",monster).get()
    if previous_vote and previous_vote.is_up:
      previous_vote.is_up = False
      previous_vote.put()
      
      if monster.downs:
        monster.downs += 1
      else:
        monster.downs = 1
        
      if monster.ups:
        monster.ups -= 1
      else:
        monster.ups = 0
        
      monster.compute_score()
      monster.put()
    elif previous_vote:
      return self.response_set_status(500)
    else:
      vote = Vote()
      vote.voter = profile
      vote.monster = monster
      vote.is_up = False
      vote.put()
      
      if monster.downs:
        monster.downs += 1
      else:
        monster.downs = 1
      monster.compute_score()
      monster.put()
HTML GET handler.
dataset/ETHPy150Open Sagelt/dungeon-world-codex/handlers/monster.py/DownVoteHandler.get