【发布时间】:2018-08-06 08:09:48
【问题描述】:
我提前知道将是哪些用户组。在开发过程中,我们经常重置数据库,这是显而易见的。但是我想知道将这些信息放在哪里以及何时将其放入数据库的最佳位置是因为我不想每次都通过 django admin 手动执行此操作。
我想出这样的事情:
我有简单的烫发图,在此基础上我通过函数将所需的信息放入数据库。
GROUP_PERMISSION_MAP = {
user_constants.GROUPS.ADMINISTRATORS: {
Bet: ['add', 'change', 'delete'],
Transaction: [],
User: ['add', 'change'],
Category: ['add', 'change', 'delete'],
BetInfo: ['add', 'change', 'delete'],
},
user_constants.GROUPS.REGULAR_USERS: {
Bet: ['add'],
Transaction: [],
User: ['change'],
Category: [],
BetInfo: ['add', 'change', 'delete'],
}
}
def assign_perms_to_group(group: Group, model: Model, permissions: List[str]):
permission_codenames = ['{}_{}'.format(permission, model.__name__.lower()) for permission in permissions]
group.permissions.add(*Permission.objects.filter(codename__in=permission_codenames))
最佳做法是什么?应该如何做?
特别是我的问题是:
- 这个具有权限的预定义组应该放在哪里(也许存在一些更好的方法)?
- 将其放入数据库的最佳方式和时间是什么?
【问题讨论】:
标签: django python-3.x permissions