0

我想从我的 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%用户来查看小部件。我怎样才能做到这一点。

4

1 回答 1

1

听起来您正在尝试进行 a/b 拆分测试?在这种情况下,有一些 django 应用程序可以帮助您做到这一点:

django-lean看起来很重量级,但里面有很多有用的工具。

django-experiments 可以满足您的需求,并且最近进行了更新。

至少你可以浏览他们的来源,看看他们是如何划分用户的。

于 2014-03-19T14:41:24.450 回答