aboutsummaryrefslogtreecommitdiff
path: root/models.py
diff options
context:
space:
mode:
authorAlban Gruin2017-09-09 19:37:12 +0200
committerAlban Gruin2017-09-09 19:37:12 +0200
commit373a20aa44620db4032e64a2a781afd2f558efb4 (patch)
tree3b96d6e95487f4bc041d614a926eca240400231d /models.py
parentd97eb1ee4b362153a3dec7bc8e860d0e8b5ca800 (diff)
Génération automatique d’un slug pour les modèles Year et Timetable
Diffstat (limited to 'models.py')
-rw-r--r--models.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/models.py b/models.py
index 6bb9733..061a213 100644
--- a/models.py
+++ b/models.py
@@ -21,20 +21,38 @@ from django.utils.text import slugify
from .utils import parse_group
-class Year(models.Model):
+class SlugModel(models.Model):
+ def save(self):
+ if not self.slug:
+ self.slug = slugify(self.name)
+
+ super(SlugModel, self).save()
+
+
+ class Meta:
+ abstract = True
+
+
+class Year(SlugModel):
name = models.CharField(max_length=16, verbose_name="année")
slug = models.SlugField(max_length=16, unique=True, default="")
def __str__(self):
return self.name
+ def save(self):
+ if not self.slug:
+ self.slug = slugify(self.name)
+
+ super(Year, self).save()
+
class Meta:
verbose_name = "année"
verbose_name_plural = "années"
-class Timetable(models.Model):
+class Timetable(SlugModel):
year = models.ForeignKey(Year, on_delete=models.CASCADE, verbose_name="année")
name = models.CharField(max_length=64, verbose_name="nom")
url = models.URLField(max_length=255, verbose_name="URL")