Django内容类型表 - Auth Permission

时间:2014-01-01 16:24:31

标签: django django-permissions

我想在auth_permission表下添加权限。当我手动插入另一个权限时,我还需要插入content_type_id。这是content_type表的引用。我不知道它做了什么。如果用户没有,我想删除一组HTML行;没有那个权限。 content_type_id的重要性是什么?

1 个答案:

答案 0 :(得分:1)

“content_type_id”是由Django确定的字段名称。

该字段是ContentType实例的外键关系。

该字段的重要性在于它指定了权限适用的对象(来自django源代码1.7.11):

  

权限是全局设置的   对象的类型,而不是具体的   对象实例。有可能的   说“玛丽可能会改变新闻故事...”

在上面的引用中,内容类型字段是与“新故事”的外键关系。

在您的用例中,您希望能够控制是否有人看到了一段HTML。您可以创建自定义模型来定义权限,如下所示:

class MyPermObject(models.Model):
    pass

然后像这样创建所述权限:

content_type = ContentType.objects.get_for_model(MyPermObject)
permission = Permission.objects.create(codename='can_see_html', name='Can see my HTML', content_type=content_type)

请参阅django文档,了解如何查询用户的权限:https://docs.djangoproject.com/en/1.9/topics/auth/default/#topic-authorization