from django.db.models.signals import pre_save from django.dispatch import receiver from core.utils import naturalize from .models import Album, Artist, Game, Song @receiver(pre_save, sender=Album) @receiver(pre_save, sender=Artist) @receiver(pre_save, sender=Game) @receiver(pre_save, sender=Song) def update_sorted_fields(sender, instance, **kwargs): if sender == Artist: instance.sorted_full_name = naturalize(instance.full_name) else: instance.sorted_title = naturalize(instance.title)