【问题标题】:Django: Best Badge app for Django projectDjango:Django 项目的最佳徽章应用程序
【发布时间】:2012-05-21 21:40:28
【问题描述】:

我想在 Django 项目中实现一个徽章应用程序,以提供与 Stackoverflow 相同的功能来奖励用户徽章。

我查看了各种应用程序 (list of apps),各种博客都提到了 Brabeion。那是用于徽章的最佳 Django 应用吗?

The project 似乎有一段时间没有维护了,github 上的问题也没有得到解答。文档很简单,但是没有解释细节,例如下面的例子中award_points的方法是什么。

def my_view(request):
    if request.method == "POST":
        # do some things
        request.user.profile.award_points(15)
        badges.possibly_award_badge("points_awarded", user=request.user)
    # more view

另一方面,djangopackages.com 列出了Django-achievements。文档看起来不错且详细,但是,每个成就都需要其own class(可能是一个很长的类定义文件)。

您在项目中使用什么?如果您使用所描述的软件包之一,您是否有机会分享一些关于点注册的代码?

【问题讨论】:

    标签: django badge achievements


    【解决方案1】:

    我没有答案,但我正在研究同样的问题。我多次遇到 brabeiondjango-badges,这两个 django-badge 对我来说似乎是最好的。

    不过,这些选项似乎都没有经过生产验证,我还想知道是否有人使用过这些选项,以及他们的经验/建议是什么。

    奖励积分可以这么简单:

    request.user.get_profile().award_points(15)
    
    def award_points(points):
       self.points += points
    

    【讨论】:

    • 仅供参考,我们选择了 brabeion。我喜欢可扩展性、celery 支持,以及它使用定义的事件组来检查奖励的系统,而不是手动或基于单一信号的方法。
    • 我也在使用 brabeion,但我认为它不适用于 django-1.4
    • 我使用的是 1.3,必须对其进行自定义才能使其正常工作。不过基本概念很好,我相信你可以让它在 1.4 上工作并提出拉取请求(尽管他们仍然没有接受我的)。尝试使用 skeet70 的 brabeion 分支,看看它是否适合您(这是唯一开放的拉取请求)。
    • 据我所知,没有什么可以阻止您对 brabeion 的负面影响。不过,我不了解当前的游戏化生态系统,所以现在可能会有更好的结果。
    【解决方案2】:

    Django-badger 是另一个似乎仍在积极开发中的解决方案。

    https://github.com/mozilla/django-badger

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 2016-01-09
      • 2011-06-15
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多