如何在save_model上获取旧字段值

时间:2018-01-16 10:21:16

标签: python django-admin django-guardian

我希望我的项目让一位领导者拥有 lead_project 各个项目的权限。此Leader存储为Project类中的ForeignKey。在我的自定义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快捷方式),但我需要" old"的ID。用户。

问题:如何获取旧用户的ID或一般情况下,字段的前值。

0 个答案:

没有答案