Populating django field with pre_save()?
@receiver(pre_save, sender=TodoList)
def my_callback(sender, instance, *args, **kwargs):
instance.slug = slugify(instance.title)
Most likely you are referring to django's pre_save
signal. You could setup something like this:
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django.template.defaultfilters import slugify
@receiver(pre_save)
def my_callback(sender, instance, *args, **kwargs):
instance.slug = slugify(instance.title)
If you dont include the sender argument in the decorator, like @receiver(pre_save, sender=MyModel)
, the callback will be called for all models.
You can put the code in any file that is parsed during the execution of your app, models.py
is a good place for that.