Skip to content

Instantly share code, notes, and snippets.

@elcolie
Last active November 16, 2017 03:33
Show Gist options
  • Save elcolie/d28e7fcf54334a9f13df5fff1b7d9fe0 to your computer and use it in GitHub Desktop.
Save elcolie/d28e7fcf54334a9f13df5fff1b7d9fe0 to your computer and use it in GitHub Desktop.
UserRole model with user is assigned when the instance is save
from django.contrib.auth.models import User
from django.db import models
from poinkbackend.apps.commons.models import AbstractTimestamp
from poinkbackend.apps.roles.models import Role
class UserRole(AbstractTimestamp):
user = models.ForeignKey(User, related_name='user_roles', on_delete=models.PROTECT)
role = models.ForeignKey(Role, related_name='user_roles', on_delete=models.PROTECT)
def __str__(self):
return f'{self.user}-{self.role}'
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
instance = super().save(force_insert=False, force_update=False, using=None,
update_fields=None)
self.user.groups.add(self.role.group)
return instance
def delete(self, using=None, keep_parents=False):
self.user.groups.remove(self.role.group)
return super().delete(using=None, keep_parents=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment