You could either:
Override your model's
save()
method:class YourModel(models.Model): base_36 = models.TextField() def save(self, *args, **kwargs): # will assign a value to pk super(YourModel, self).save(*args, **kwargs) # convert the pk to base 36 and save it in our field self.base_36 = convert_base(self.pk, 36) self.save()
Turn your base_36 field into a
property
:class YourModel(models.Model): @property def base_36(self): return convert_base(self.pk,36) # can call a property just like a field: # print YourModel.objects.get(pk=1).base_36