【发布时间】:2010-03-28 22:14:27
【问题描述】:
我希望用户在完成我的应用程序中的各种任务时获得“积分”——从标记对象到结交朋友等任务。我还没有找到可以简化此操作的 Django 应用程序。
目前我认为累积积分的最佳方法是每个用户操作创建一个“流项目”的等价物,并且通过计算发布到其流的每个操作的值来计算积分。
显然,社交游戏机制是一个巨大的领域,目前正在进行大量研究。但是从开发的角度来看,最简单的入门方法是什么?我是在错误的轨道上还是有更好/更简单的方法?
编辑:对于任何想要一个非常简单的实现的人:
对于任何对这个想法的简单实现感兴趣的人,请尝试创建一个“日志记录”应用程序并将其放入您的 models.py:
log_models = [Tag, Post, Vote]
class Point(models.Model):
# model fields
def increase_score(sender, instance, signal, *args, **kwargs):
# score logic
for model in log_models:
post_save.connect(increase_score, sender=model)
post_delete.connect(decrease_score, sender=model)
如果您发现 post_save 发出两次,请参阅此文档:http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave
【问题讨论】:
标签: django django-models social-networking