J'ai un modèle MyModel (prolongeant le db.Model de Google), et je veux garder une trace du nombre de modèles qui ont été créés.Où placer le code pour auto-incrémenter un compteur partitionné sur Google App Engine/Django quand on crée un nouveau modèle?
Je pense que le code de la conversation d'E/S de Google sur Sharding Counters est assez bon, donc je l'utilise. Mais je ne suis pas sûr où je devrais appeler l'incrément lors de la création d'un nouveau code. (J'utilise Django, et j'ai gardé la disposition familière models.py, views.py, etc. pour les applications du projet.)
Il y a quelques possibilités qui semblent venir à l'esprit pour savoir où mettre le code incrémenter:
surcharge du Model.put() pour qu'il incrémente le compteur lorsque le modèle est enregistré pour la première fois, et la surcharge de la même Model.delete() pour décrémenter le compteur
Attacher une sorte d'écouteur aux sauvegardes/suppressions, et vérifier que la sauvegarde est d'un nouveau modèle (est-ce que GAE a de tels écouteurs?)
Mettez le compteur incrémenter code dans la fonction view.py qui crée/supprime les modèles
je serais bien obligé des suggestions et réflexions quant à la façon de le faire mieux (et pros/contre de chaque option).
Merci d'avoir lu.
Best, Brian
Plutôt que de créer un compteur de modèles, pourriez-vous utiliser l'API Datastore Statistics? http://code.google.com/appengine/docs/python/datastore/stats.html –