diff options
author | Alban Gruin | 2017-09-09 19:37:12 +0200 |
---|---|---|
committer | Alban Gruin | 2017-09-12 21:39:00 +0200 |
commit | c0f19d41c8dfb6d499defcfc63c273bbc8918584 (patch) | |
tree | 652e4890fa7ef820ad5d64b32ffc50cb20f24bc0 | |
parent | c5d409e7c38cd5dd5686ce2311928587796349f9 (diff) |
Génération automatique d’un slug pour les modèles Year et Timetable
-rw-r--r-- | admin.py | 1 | ||||
-rw-r--r-- | models.py | 16 |
2 files changed, 15 insertions, 2 deletions
@@ -21,6 +21,7 @@ from .models import Timetable, LastUpdate, Group, Room, Course, Year class YearAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ("name",)} list_display = ("name",) + ordering = ("name",) @admin.register(Timetable) @@ -21,7 +21,19 @@ 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="") @@ -34,7 +46,7 @@ class Year(models.Model): 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") |