我希望我的项目有一位具有lead_project权限的领导者来管理各个项目。这个领导者作为 ForeignKey 存储在 Project 类中。在我的自定义 ProjectAdmin 中,我设法通过定义save_model来分配权限。
class ProjectAdmin(GuardedModelAdmin):
...
def save_model(self, request, obj, form, change):
leaderid = obj.get_projectLeaderid()
project = Project.objects.get (name=obj)
newleader = AbstractUser.objects.get (id=leaderid)
assign_perm("lead_project", newleader, project)
obj.save()
我的项目类:
class Project (models.Model):
name = models.CharField(max_length=1000)
projectLeader = models.ForeignKey('anmeldung.AbstractUser', blank=True, null=True, )
...
class Meta:
permissions = (
("view_project", "Has permission to view this project"),
("lead_project", "Is Projectleader"), #Nur ProjecLeader
)
我正在使用 django-guardian 获取对象权限,Assign_perm是它的快捷方式之一。我想过使用remove_perm(也是一个 django-guardian 快捷方式),但我需要“旧”用户的 ID。
问题:我如何获得旧用户的 ID,或者一般来说,一个字段的前一个值。