我有我的用户
class User(AbstractBaseUser, PermissionsMixin):
...
除了django提供的默认权限外,我想为此类添加默认权限
add: user.has_perm('foo.add_user')
change: user.has_perm('foo.change_user')
delete: user.has_perm('foo.delete_user')
我该怎么做呢
这会违反默认值吗?
class User(AbstractBaseUser, PermissionsMixin):
# model stuff here
class Meta:
permissions = (
( "extra_user", "Can do extra" ),
)
答案 0 :(得分:0)
此问题基本上有两个选项,属于如何扩展用户模型的常见问题。
第一个选项是将User模型完全替换为自定义模型,该模型也将包含任何自定义权限。这在相关Django documentation中有详细描述。
第二个选项是使用包含auth.User的一对一字段的自定义模型扩展当前用户模型。新模型将包含任何自定义权限,您需要检查这些权限。这在Django docs中也有描述。
如果一个人不介意(设计方面)自定义权限属于默认Django User模型的单独模型这一事实,那么第二个选项更容易编码和维护。