|
|
1
25
最兼容的方法是创建一个 user Profile model 其中包括站点模型的外键,然后编写 custom auth backend 它检查当前站点与该fk的值。一些示例代码: 定义您的配置文件模型,比如在app/model s.py中:
编写自定义的auth后端,从默认后端继承,比如在app/auth_backend.py中:
这个认证后端假定所有用户都有一个配置文件;您需要确保您的用户创建/注册过程始终创建一个配置文件。
被重写的
|
|
|
2
2
您可以在考虑站点ID的情况下插入自己的授权和身份验证后端。 参见 other authentication sources 关于Django文档和 authentication backends references 此外,如果您的django源太旧,您可以自己修改authenticate()或login()代码。毕竟…这不是开源的奇迹之一吗?请注意,这样做可能会影响与其他模块的兼容性。 希望这有帮助。 |
|
|
3
-1
你必须知道,很多人抱怨Django默认授权系统和特权——它只是对对象的规则,对对象的实例——这意味着,如果不编写任何代码,就不可能实现。 但是,有一些授权挂钩可以帮助您实现此目标,例如: 看看那里: http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/models.py 为了班级许可。 您可以添加自己的权限并为其定义规则(用户和ContentType有一个ForeignKey)。 但是,如果没有MonkeyPatching/改变某些方法,可能会很困难。 |