我希望我的项目让一位领导者拥有 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或一般情况下,字段的前值。