Add fields and extend Django's built-inGroup
model using aOneToOneField
(i.e. a profile model). In this example, we add aUUIDField
. Whenever a new group is created, we automatically (via signals) create a correspondingRole
record referencing the newly created group. Whenever a Group is deleted, the corresponding Role is deleted as well.
1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829 | fromuuidimportuuid4fromdjango.dbimportmodelsfromdjango.db.models.signalsimportpost_savefromdjango.dispatchimportreceiverclassRole(models.Model):"""Extension of Django's built-in Group model Adds a UUID field to Django's built-in Group model. """uuid=models.UUIDField(auto_created=True,default=uuid4,editable=False,help_text="object ID",primary_key=True,unique=True,)group=models.OneToOneField(Group,on_delete=models.CASCADE)def__str__(self):returnf"{self.group.name}"@receiver(post_save,sender=Group)defcreate_role(sender,instance,created,**kwargs):ifcreated:Role.objects.create(group=instance) |
Pleaselogin first before commenting.