1

我希望我的项目有一位具有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,或者一般来说,一个字段的前一个值。

4

0 回答 0