我希望在Postgresql 9.4级别(因此我不会使用Django权限系统)成为数据所有者和其他用于读取访问的角色。
换句话说: PG角色data_owner(内容管理器) - > Django集团出版社(RW) PG角色data_user(内容阅读器) - > Django group Subscribers(R)
数据所有者角色(通过发布者组)负责向应用提供数据,而其他用户只是具有只读访问权限的检索器。
需要为所有用户读取一些像活动流这样的表。
然后方法是:
可选:
其中r表示选择权限,w表示插入,更新和删除权限。
如何更好地实现这一目标?
答案 0 :(得分:0)
最简单的方法可能是在settings.py中定义两个数据库:
DATABASES = {
'default': {
'NAME': 'my_db',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'data_owner',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'my_db',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'data_user',
'PASSWORD': 'priv4te'
}
}
然后,在视图中,使用 using()功能访问模型,如下所示:
# This will run on the 'default' database.
objects.all()
# So will this.
objects.using('default').all()
# This will run on the 'users' database.
objects.using('users').all()
此外,您可以选择要保存的数据库,如下所示:
my_object.save(using='_users')
来源:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/
还有其他建议吗?