diff --git a/app/access/fields.py b/app/access/fields.py index c02f00b5..1ef8ef21 100644 --- a/app/access/fields.py +++ b/app/access/fields.py @@ -47,10 +47,13 @@ class AutoSlugField(models.SlugField): def pre_save(self, model_instance, add): - value = self.name.lower().replace(' ', '_') + if not model_instance.slug or model_instance.slug == '_': + value = model_instance.name.lower().replace(' ', '_') - setattr(model_instance, self.attname, value) + setattr(model_instance, self.attname, value) - return value + return value + + return model_instance.slug diff --git a/app/access/migrations/0001_initial.py b/app/access/migrations/0001_initial.py index ce0b23bd..f0c6e39c 100644 --- a/app/access/migrations/0001_initial.py +++ b/app/access/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.0.4 on 2024-05-12 09:50 +# Generated by Django 5.0.4 on 2024-05-13 15:30 import access.fields import django.contrib.auth.models @@ -23,7 +23,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(primary_key=True, serialize=False, unique=True)), ('name', models.CharField(max_length=50, unique=True)), - ('slug', models.SlugField(default='_')), + ('slug', access.fields.AutoSlugField()), ('created', access.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False)), ('modified', access.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False)), ], diff --git a/app/access/models.py b/app/access/models.py index 9b3ad4ed..3cb84b97 100644 --- a/app/access/models.py +++ b/app/access/models.py @@ -33,10 +33,7 @@ class Organization(models.Model): unique = True, ) - slug = models.SlugField( - max_length=50, - default='_', - ) + slug = AutoSlugField() created = AutoCreatedField()