I want my projects to have one leader with lead_project permission for individual projects. This Leader is stored as a ForeignKey in the Project class. In my custom ProjectAdmin I managed to assign the permission by defining 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()
My Project class:
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
)
I am using django-guardian for object permission, Assign_perm is one of its shortcuts. I thought of using remove_perm (also a django-guardian shortcut), but i need the ID of the "old" user.
Question: How do i get the ID of the old user or in general, the former value of a field.