При разработке сервиса очень полезно иметь UUID в качестве первичного ключа.
В Django 2.2 это можно сделать как и раньше, но без реализации метода сохранения модели:
import uuid
class AbstractUUID(models.Model):
""" Абстрактная модель для использования UUID в качестве PK."""
# Параметр blank=True позволяет работать с формами, он никогда не
# будет пустым, см. метод save()
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class Meta:
abstract = True
Пример использования:
from django.db import models
from .mixins import AbstractUUID
class SomeModel(AbstractUUID):
pass