我想隐藏一些部分的接口从我的django应用程序。例如,如果我有一个显示一些统计数据的小部件,我不希望这个小部件出现在每个用户登录到网站后。我想随机隐藏。另外,假设我有一个搜索结果排序功能,我想随机选择一组用户按时间降序排序,另一组用户按升序排序。
我的第一个任务是如何在用户登录后随机挑选用户。如何在django应用中定义这种类型的随机性?我真的不知道我应该在这里包括什么例子,但是,这是一个简单的小部件,我必须显示网站的前5名贡献者。
{% cache 600 "contributors" contributors search_tags scope sort query context.page language_code %}
<div id="contrib-users" class="box">
<h2 class="contributorback">{% trans %}Top 5 Contributors{% endtrans %}</h2>
{% spaceless %}
{% for user in contributors %}
<div class="contributor">
<div class="contrib-thumb">{{ macros.gravatar(user, 32) }}</div>
<div class="contrib-text">
<span class="contrib-username">
<a href="{{ user.get_absolute_url() }}">{{user.username|escape}}</a>
</span>
<span class="contrib-rep">{{ macros.user_score_and_badge_summary(user, settings.KARMA_MODE, settings.BADGES_MODE) }}
</div>
</div>
{% endfor %}
{% endspaceless %}
</div>
{% endcache %}
假设我在系统中有来自user0001
- user1000
的用户,我想随机选择25%
用户来查看小部件。我怎么能做到呢?
听起来你想做a/b分割测试?在这种情况下,有一些django应用程序可以帮助你做到这一点:
django-lean看起来很重量级,但是里面有很多有用的工具。
django-experiments做了你想要的并且最近更新了。
至少你可以浏览一下他们的源代码,看看他们是如何划分用户的