I'm creating a rest api using Django and DRF. I don't want to expose IDs directly to clients so I'm trying to setup my models like this example:
class AbstractGuidModel(models.Model):
uuid = models.UUIDField(blank=True, default=uuid.uuid4, unique=True, editable=False)
class Meta:
abstract = True
class MyModel(AbstractGuidModel):
name = models.CharField(max_length=NAME_LENGTH)
Since the AbstractGuidModel has default=uuid.uuid4, uuid are generated by python code and migrations look like:
CREATE TABLE "MyModel" ( ... "uuid" uuid NOT NULL UNIQUE, ... );
I've read Postgres has an extension for generating automatically uuids.
Once extension is installed, how can I tell django to let database use his own extension and not letting him create them with the Python uuid module?