我已經實現了我自己的User模型類,如下所示。請注意,它是不是定製django的auth.User
模型。我對這個對象的權限知識很陌生,特別是在我的項目中需要的這個自定義用戶模型中。您自己的用戶模型的Django Per Object權限
你可以舉一個例子,在這種情況下添加每個對象的權限?非常感激。
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)
現在,對象權限開始發揮作用。每個用戶都可以創建/更新/刪除/查看他們自己的文章對象,但只有在沒有更新/刪除權限的情況下才能查看他人的文章。
從django文檔中,模型級別權限不適用於此處。如果文章具有模型級別更新權限,則所有用戶都可以更新他人的文章。
因此,我發現了django-guardian。然而,這個自定義的CustomUser模型似乎沒有希望,因爲它很大程度上依賴於Django的auth.User
模型!
https://django-guardian.readthedocs.org/en/v1.2/userguide/custom-user-model.html
UPDATE:
- 我的情況下繼承,而不是AbstractUser AbstractBaseUser;
- 這不是爲管理員,但只爲我的後端代碼邏輯;
- 這裏我沒有使用Django REST API,但是如果REST API是正確的,請舉個例子。
您是否正在使用Django Rest Framework?或者僅僅是Django? – user2719875
您是否希望將此集成到Django管理員中,還是僅用於您自己的代碼中? – oogles
在更新中回答。 – coder