在Google App Engine上实现标签功能

7
我已经阅读了有关在Django Blog模型中添加标签的类似问题,其中提到将标签维护为StringList,并使用单独的对象来保持这些对象的计数,这很好,因为我基本上也想到了同样的想法,但是我不知道如何维护计数。我正在覆盖主对象的put()方法,但是如何检查标记是否与当前存储的对象有所更改?有没有办法廉价地检查现有数据而不获取第二个对象的副本?
一种处理方式是将每个对象存储在memcache中,并仅获取未找到的对象,但对于繁忙的站点,您仍然会经常访问数据存储。

如果这对您仍然有意义,这里是我写的有关ndb.Model衍生类的mixin的博客文章 - Brian M. Hunt
1个回答

6

请查看taggable-mixin。它是一种非常简单的方式,可以将标签作为mixin添加到任何AppEngine模型类中。


谢谢你的回答,Adam。我在Django下需要做一些小工作才能让它正常运行,但实际上只需要很少的工作量。我已经更新了附带的Tiddlywiki,并将我所做的工作发送给你。 - Stuart Grimshaw
Stuart!太感谢了!你回馈发现的东西真是非常好。 - Adam Crossland
taggable-mixin存在一个缺陷,它会在Tag模型中保存所有已标记实体的列表。 如果你有很多实体(例如像StackOverflow这样的系统),则Tag实体将变得异常庞大。 最好将该引用保存在可标记实体中-每个实体都拥有一组标签。 - Eran Kampf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接