django应用程序支持净推广分数(nps)调查。
django-nps的Python项目详细描述
此软件包现在仅支持python3和django 1.11及更高版本。对于以前的版本,请参阅python2分支。
Django核动力源
django应用程序支持净促销员评分(nps)调查
背景-净推广分数
nps是衡量客户忠诚度的一个指标,通过询问 客户一个问题:
How likely is it that you would recommend our [company|product|service] to a friend or colleague?"
这个问题的答案是0-10之间的数字(包括0-10)。这些分数 然后分成三组:“批评者”(0-6)、“中立者” (7-8)和“发起人”(9-10)。那么nps就是 发起人和反对人的数量(占总人口的百分比)。
例如,如果你问100个人,得到的结果如下:
detractors: 20% neutrals: 10% promoters: 70%
那么你的核动力源是70-20=50。(nps表示为数字,而不是a%)
nps最初是由fred reichhold于2003年在bain&company战略顾问公司开发的。 他们保留核动力源的注册商标,你可以在 他们的网站“Net Promoter System”。
使用量
此应用程序用于存储个人分数,并计算基于nps的 关于这些。它不包含任何显示问题本身的模板, 它也没有限制你问问题的频率,或者 给谁。这取决于应用程序开发人员来确定这应该如何工作- 每个分数都有时间戳并链接到django用户对象,因此您可以 很容易计算出他们上次被问到之后经过的时间。
例如,如果要确保每X天只调查用户, 可以使用^{tt1}向模板添加上下文属性$ 方法:
>>># only show the survey every 90 days>>>UserScore.objects.days_since_user_score(request.user)>90True
如果您随后显示调查-其输出是单个值(分数) 加上一个可选的原因(“你得分的主要原因是什么”)是 然后发布到post_score端点,该端点注册用户得分。
nps值本身可以在UserScore对象的任何queryset上计算- 它允许您根据分数本身的任何属性跟踪分数 或基础用户。例如,如果有自定义用户配置文件,则 可能希望通过这些配置文件的特征来分隔您的np。
>>># December's NPS>>>UserScore.objects.filter(timestamp__month=12).net_promoter_score()50
post_score端点返回包含^{tt6}的JsonResponse。$ 值与用户得分一起详细信息:
{"success":True,"score":{"id":1,"user":1,"score":0,"group":"detractor"}}
如果分数被拒绝,则返回错误以代替分数(错误 是从django表单返回的列表列表。错误属性:
{"success":False,"errors":[["score","Score must be between 0-10"]]}
应用程序包含一个中间件NPSMiddleware,它将添加 属性到名为show_nps的HttpRequest对象。如果您添加 中间件到您的设置:
# settings.pyMIDDLEWARE_CLASSES=(# standard django middleware'django.middleware.common.CommonMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware',...'net_promoter_score.NPSMiddleware',)
然后可以在模板中使用此值:
<!-- show_nps template = {{request.show_nps}} --> {% if request.show_nps %} <div>HTML goes here</div> {% endif %}
设置
nps_显示间隔
两次调查之间的天数,整数,默认为30。这个值是 由默认的show_nps函数用于确定某人是否应该 显示调查结果。
nps_display_函数
将HttpRequest对象作为其唯一参数的函数,以及 如果要显示调查,则返回true。使用此函数 通过net_promoter_score.show_nps函数。默认返回true 如果请求用户从未看过调查,或者没有看过 超过了NPS_DISPLAY_INTERVAL天。
如果希望对 这个过程-它是应用程序的主要挂钩。
测试
该应用程序有一整套测试,最好通过tox来运行。如果 如果希望在tox之外运行测试,应首先安装要求:
$ pip install -r requirements.txt
$ python manage.py test
许可证
麻省理工学院
一般规则适用:
- 转到您自己的帐户
- 创建分支,解决问题/添加功能
- 提交PR
请注意遵循编码风格-和PEP8。