Yes, it is actually correct, but I'd just like to force uuid generation at 
database level (postgres supports it) and not via python/django

I can modify the table with raw sql after migration and disable
inside django models, but I'm looking for a better way to accomplish it

Il giorno mercoledì 19 ottobre 2016 02:14:23 UTC+2, Tim Graham ha scritto:
> The SQL looks correct -- it's not using anything Python related. Are you 
> encountering some error?
> On Tuesday, October 18, 2016 at 9:15:46 AM UTC-4, Andrea Posi wrote:
>> 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?

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To post to this group, send email to
Visit this group at
To view this discussion on the web visit
For more options, visit

Reply via email to