默认情况下,在 django 中,当安装了 django.contrib.auth 运行 syncdb 时,它会在每个模型上创建默认权限......比如 foo.can_change 、 foo.can_delete 和 foo.can_add。要向模型添加自定义权限,可以在模型下添加类 Meta: 并在此处定义权限,如此处所述https://docs.djangoproject.com/en/dev/topics/auth/#custom-permissions
我的问题是,如果我想为 User 模型添加自定义权限该怎么办?像 foo.can_view。我可以用下面的代码片段做到这一点,
ct = ContentType.objects.get(app_label='auth', model='user')
perm = Permission.objects.create(codename='can_view', name='Can View Users',
content_type=ct)
perm.save()
但我想要一些与syncdb 配合得很好的东西,例如我的自定义模型下的Meta 类。我是否应该将这些放在 Meta: 类中,在 UserProfile 下,因为这是扩展用户模型的方式。但这是正确的方法吗?这不会将它与 UserProfile 模型联系起来吗?