2

我想在auth_permission表格下添加权限。当我手动插入另一个权限时,我还需要插入一个content_type_id。这是参考content_type表。我不知道它有什么作用。如果用户没有该权限,我想删除一组 HTML 行。有什么重要性content_type_id

4

1 回答 1

2

“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

于 2016-01-13T08:46:29.270 回答