2013-03-09 61 views
1

我发现了几个关于在Django中限制来自同一用户的并发多个登录的问题,但我正在寻找的是相反的。我想要一个“通用客户”用户,几个人可以登录并访问特定的功能。有没有实际的限制?你看到这种方法的主要问题吗?Django支持来自同一帐户的多少个并发登录?

回答

1

如果您询问多个用户共享相同的帐户甚至是会话,这是一个非常糟糕的主意。你看过django-guest?它允许访客用户帐户,并且您正在寻找。它提供了两个装饰器,guest_allowedlogin_required它可以应用到您的意见。因此,用户可以将其视为“通用客户”,而您仍然有一些控制权并可以跟踪他们。

另外Django有`class models.AnonymousUser',但这只是给用户没有登录的状态,也许是你以后的状态。

+0

谢谢你的回答。但是,我不能使用django-guest,因为我不希望用户以后被删除,因为他们可能会在与其帐户关联的数据库中创建数据。 – valentinos 2013-03-10 00:32:13

+0

您可以随时为用户提供成为“真实”用户的选项,如果他们不这样做,这将为您清理冗余数据。它也是一个很好的起点,因为可以根据需要删除/覆盖任何功能。 – 2013-03-10 00:35:24

+0

同样,如果您使用同一个帐号登录,您怎么知道这些数据属于谁?这是不可能的(很困难),而不是一个好主意。 – 2013-03-10 00:37:01

1

下面是我该怎么做:

创建一个多页面表单。

  1. 1 - 调查密码(识别/清洁方法,以确保输入的密码是否有效)
  2. 第2页 - 调查问题

使用Django的表单向导:https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/

该向导显示第1页,并且不会让用户进入第2页,直到用户正确回答第1页(即密码)。这样,除非用户拥有有效的密码,否则用户无法参与调查。

此解决方案不使用django的身份验证,并应该让你在所有会话中阻止你前进的东西。

+0

谢谢你的回答。但是,我不能使用表单来达到我想要的目的。我将解决这个问题的方法是在打开视图时根据数据请求凭据进行自定义检查。 – valentinos 2013-03-10 01:23:32