class GUUID(models.Model): guuid = models.PositiveSmallIntegerField(_(u"Dummy GUUID"), default=1)
It's a dummy model class with only one field (set to 1, but you can use it to provide some additional functionality). Ok, but where's our uniqueness ?
class Celebrity(BaseObject): uniq = models.IntegerField(blank=False, editable=False)
Here it is. Each model has a 'uniq' field set to integer field (u can use PositiveInteger if you want to). Then in save method of each object we add this :
def save(self, *args, **kwargs): if not self.uniq: guuid = GUUID() guuid.save() self.uniq = guuid.id super(Celebrity, self).save(*args, **kwargs)
Now when we save object, we check fo existence of 'uniq' field. If it is null, then we create a new GUUID object and set it's id as the value of 'uniq'.