在这里使用Django 1.5。我有一个我创建的应用程序,目前有一个大的数据集,如果你愿意的话,可以为一个“帐户”。这意味着我的应用程序中所有模型中的所有数据都可供所有登录用户使用。现在,我希望能够让更多的人使用我的应用程序,但使用他们自己的一组数据。所以我需要将用户分成不同的帐户,并为每个帐户设置不同的数据集。可能有一个或多个用户可以访问每个帐户。目前,我并不需要一个帐户中的不同用户具有不同的访问级别,但我打算让一个用户成为帐户“所有者”。Django:多帐户,每个帐户下有多个用户,但帐户特定的数据
我知道,要进行这种转换,我当然需要一个字段添加到每个模型的外键一个新的“账户”的模式。但除此之外,我有点模糊。这似乎是Django身份验证系统圆洞中的一个挂钩。所以问题是,最好的方法是什么?
的一点想法我有这么远:
- 只需按帐户筛选每一个查询
- 裹每一个装饰每一个观点,但有多个型号,我必须创建一个不同的每个模型的装饰者?我可以从装饰者中知道正在访问哪个模型?
- 以某种方式使用Auth系统的
user_passes_test
修饰器,但再次使用不同的型号。 - 将验证系统扩展为包含
request.account
属性 - 为我的视图创建新的混合?如果我没有专门使用CBV,该怎么办?
- 不同的中间件?
我考虑为每个帐户使用一个新组,然后按组进行过滤而不是新帐户模型,但我预测在这种情况下这将不太合适,因为它并未按照预期使用组。
这不是一个代码问题,而是更多的大图片,最佳实践问题。你会如何处理这个问题?
我没有得到整个帐户/用户/数据分离的目标。你能更详细地描述它吗? – Alp