from django.db.models.fields import CharField class SlugField(CharField): def __init__(self, *args, slugify=None, **kwargs): super().__init__(*args, **kwargs) self.slugify = slugify def pre_save(self, model_instance, add): if add: value = self.slugify(model_instance) setattr(model_instance, self.attname, value) return value return super().pre_save(model_instance=model_instance, add=add)