UUID Primary Keys

A snippet showing how to configure UUID primary keys.


# models.py
import uuid
from django.db import models

class Customer(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    email = models.EmailField(unique=True)
  

# admin.py
from django.contrib import admin
from .models import Customer

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    list_display = ("id", "email")
  
Explanation:
  • Use UUIDField with default=uuid.uuid4 for PKs.
  • Index other lookup fields (e.g., email) for performance.
  • UUIDs provide opaque, non-sequential identifiers suitable for public URLs.
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.