django应用程序支持净推广分数(nps)调查。

django-nps的Python项目详细描述


https://badge.fury.io/py/django-nps.svghttps://travis-ci.org/yunojuno/django-nps.svg?branch=master

此软件包现在仅支持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_npsHttpRequest对象。如果您添加 中间件到您的设置:

# 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

许可证

麻省理工学院

贡献

一般规则适用:

  1. 转到您自己的帐户
  2. 创建分支,解决问题/添加功能
  3. 提交PR

请注意遵循编码风格-和PEP8。

确认

贷记是由于epantry从中派生的original project

还要感谢eldarionwebsite)的好心人发布了pypi包名。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组