15 lines
469 B
Python
Executable File
15 lines
469 B
Python
Executable File
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)
|