我已经实现了我自己的User模型类,如下所示.请注意,它不是自定义django的auth.User
模型.我是这个对象权限知识的新手,特别是在我的项目中需要的这个自定义用户模型中.
你能给出一个在这种情况下添加每个对象权限的例子吗?非常感激.
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=40, unique=True)
//.... other fields are omitted
class Article(models.Model):
title = models.CharField('title', max_length=120)
body = models.TextField('body')
author = models.ForeignKey(CustomUser)
Run Code Online (Sandbox Code Playgroud)
现在,对象权限发挥作用.每个用户都可以创建/更新/删除/查看他们自己的文章对象,但只能在没有更新/删除权限的情况下查看其他人的文章.
从django文档中,模型级权限不适用于此处.如果文章具有模型级别更新权限,则所有用户都可以更新其他人的文章.
所以,我发现了django-guardian.但是,这个自定义的CustomUser模型似乎没有希望,因为它很大程度上依赖于Django的auth.User
模型!
https://django-guardian.readthedocs.org/en/v1.2/userguide/custom-user-model.html
更新: