From 3dd147e1af30226da3dfbb41a3363b61973c4b8b Mon Sep 17 00:00:00 2001 From: Viswamedha Nalabotu Date: Sun, 8 Mar 2026 12:56:23 +0000 Subject: [PATCH] Added unique together for role name and org --- apps/accounts/migrations/0001_initial.py | 3 ++- apps/accounts/models.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/accounts/migrations/0001_initial.py b/apps/accounts/migrations/0001_initial.py index a954d13..1c12339 100644 --- a/apps/accounts/migrations/0001_initial.py +++ b/apps/accounts/migrations/0001_initial.py @@ -81,7 +81,7 @@ class Migration(migrations.Migration): ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, verbose_name='UUID')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), - ('name', models.CharField(max_length=100, unique=True, verbose_name='Name')), + ('name', models.CharField(max_length=100, verbose_name='Name')), ('description', models.TextField(blank=True, default='', verbose_name='Description')), ('members', models.ManyToManyField(related_name='roles', to=settings.AUTH_USER_MODEL)), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='roles', to='accounts.organization')), @@ -89,6 +89,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Role', 'verbose_name_plural': 'Roles', + 'unique_together': {('organization', 'name')}, }, ), ] diff --git a/apps/accounts/models.py b/apps/accounts/models.py index 96fa4f9..482d557 100644 --- a/apps/accounts/models.py +++ b/apps/accounts/models.py @@ -95,7 +95,7 @@ class Invite(IdentifierMixin, TimeStampMixin, Model): class Role(IdentifierMixin, TimeStampMixin, Model): - name = CharField(verbose_name = _("Name"), max_length = 100, unique = True) + name = CharField(verbose_name = _("Name"), max_length = 100) description = TextField(verbose_name = _("Description"), blank = True, default = '') organization = ForeignKey(Organization, on_delete = CASCADE, related_name = "roles") members = ManyToManyField(User, related_name = "roles") @@ -103,6 +103,7 @@ class Role(IdentifierMixin, TimeStampMixin, Model): class Meta: verbose_name = _('Role') verbose_name_plural = _('Roles') + unique_together = [('organization', 'name')] def __str__(self) -> str: return f"{self.name} ({self.organization.name})"