2

假设我有一个 Web 应用程序,它在每个会话上显示 2 个随机按钮,我希望用户单击一个按钮或另一个。如果单击按钮,我想增加该按钮的分数。但是,用户无法控制每次显示哪两个按钮,并且有数千个可能的按钮。

如果我创建一个视图来增加按钮,我将如何确定用户不会只是通过浏览器手动转到该视图。

我的想法是您需要创建一个表单并让用户发布到某个地址,但是您怎么知道用户不只是通过 AJAX 发送发布请求来增加按钮,并且用户实际上是从那里收到该按钮的带有 2 个按钮的随机会话。

我将如何在 Django 中处理这个问题是否有详细说明 Django 如何具体支持这个的文档?

编辑:或者您是否必须为每个选择会话的按钮创建一个唯一的会话 ID,并根据唯一的会话 ID 检查每个按钮的单击。

4

1 回答 1

0

创建一个会话变量来跟踪他们看到的按钮,例如:

def button_display_view(request):
    # ...lots of cool logic
    session['buttons_shown'] = [button_1_primary_key, button_2_primary_key]
    return response

然后,在您的按钮单击视图中,确保单击的按钮位于显示它们的按钮列表中。用户对您的会话变量的了解为零,也无法对其进行编辑,就像他/她在您使用会话变量跟踪身份验证等时不能一样。

如果您正在构建一个多变量测试系统(甚至是 AB 测试系统),可能值得查看这个 MVT 应用程序以获取想法。

于 2012-12-30T02:12:07.007 回答