...
class Collection(models.Model):
    year   = models.PositiveIntegerField(_('year'), choices=YEARS)
    season = models.CharField(_('season'), max_length=10, choices=SEASONS)
    active = models.BooleanField(_('active'), default=False)

    def save(self):
        active = Collection.objects.filter(active=True)
        if self.pk:
            active = active.exclude(pk=self.pk)
        if active and self.active:
            for c in active:
                c.active = False
                super(Collection, c).save()
            active = None
        if not active:
            self.active = True
        super(Collection, self).save()
...