【发布时间】:2011-12-05 04:09:19
【问题描述】:
默认情况下,在 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。我可以使用以下 sn-p 来做到这一点,
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 模型联系起来吗?
【问题讨论】:
-
您可以在模型迁移中做到这一点:stackoverflow.com/a/32706020/538284
标签: python django django-permissions