2010-01-31 22 views
7

He leído similar question al agregar etiquetas a un modelo de blog de Django, donde se menciona el mantenimiento de etiquetas en el artículo como StringList y un objeto separado para contar estos objetos, lo cual es bueno porque, básicamente, me venía la misma idea, pero estoy luchando por saber cómo mantener el conteo.Implementación de etiquetas en Google App Engine

Estoy anulando el método put() del objeto principal, pero ¿cómo puedo verificar si las etiquetas han cambiado en comparación con el objeto almacenado actualmente? ¿Hay alguna forma de verificar los datos existentes de forma barata sin tener que obtener una segunda copia del objeto?

Una forma de manejarlo es almacenar cada objeto en Memcache y solo recuperar los que no encuentra allí, pero para un sitio ocupado, todavía estará yendo al almacén de datos con bastante frecuencia.

+0

Si esto todavía es relevante para usted, aquí hay una [publicación de blog que escribí] (http://brianmhunt.github.io/articles/ndb-tags/) con respecto a una mezcla de derivados 'ndb.Model'. –

Respuesta

6

Echa un vistazo taggable-mixin. Es una forma bastante sencilla de agregar etiquetas a cualquier clase de modelo de AppEngine como mixin.

+0

Gracias por la respuesta Adam, tenía un poco de trabajo que hacer para que funcione bajo Django, pero realmente solo fue un poco. He actualizado el Tiddlywiki que viene con lo que tenía que hacer para que funcione, y se lo devolví por correo. –

+0

Stuart! ¡Muchas gracias! Es increíblemente decente de su parte contribuir con lo que descubrió. –

+0

taggable-mixin tiene un defecto que guarda una lista de todas las entidades etiquetadas en el modelo Tag. Si tiene muchas entidades (piense en un sistema como StackOverflow, por ejemplo), la entidad Tag explotará. Es mejor guardar esa referencia en la entidad etiquetable: cada entidad tiene una lista de etiquetas. –