J'essaie de créer une fonction de vote qui augmente la classe URL.votes +1 lorsqu'elle est cliquée. C'est une question en deux parties:Transaction sur la propriété d'entité GAE
Comment tirez-vous la clé d'entité? (Je pense que vous avez besoin de la clé pour distinguer quelle propriété vote est en cours de modification?)
Comment écrivez-vous ensuite le 'a href' pour que le lien effectue le vote?
Merci!
Modèles:
URL classe (db.Model):
user = db.ReferenceProperty(User)
website = db.StringProperty()
created = db.DateTimeProperty(auto_now=True)
votes = db.IntegerProperty(default=1)
classe Vote (db.Model):
user = db.ReferenceProperty(User) #See if voted on this site yet
url = db.ReferenceProperty(URL) #To apply vote to right URL
upvote = db.IntegerProperty(default=1)
created = db.DateTimeProperty(auto_now=True)
Contrôleur
VoteHandler classe (webapp.RequestHandler):
def get(self):
doRender(self, 'base/index.html')
def post(self):
#See if logged in
self.Session = Session()
if not 'userkey' in self.Session:
doRender(
self,
'/',
{'error' : 'Please login to vote'})
return
#Get current vote total
url = db.URL.get() #pull current site. This is where I think I need the help
url.votes += 1 #pull current site vote total & add 1
url.put();
logging.info('Adding a vote'+nurl)
#Create a new Vote object
newvote = models.Vote(user=self.Session['userkey'], url=url)
newvote.put();
self.get();
self.redirect('/', { })
Voir
a href = "/ vote" {{}} url.votes votes - {{}} url.website
ok grand merci – Emile