Разница между первичным ключом и уникальным ключом в Django заключается в их назначении и поведении:
- Первичный ключ (primary_key=True) — это уникальный идентификатор каждой записи, который не может быть NULL. 45 Для объекта разрешён только один первичный ключ. 1 Поле первичного ключа доступно только для чтения. 1
- Уникальный ключ (unique=True) обеспечивает уникальность значений в пределах таблицы. 1 Это обеспечивается на уровне базы данных и проверкой модели. 1 Если попытаться сохранить модель с повторяющимся значением в unique-поле, то будет возбуждено исключение django.db.IntegrityError. 1
Таким образом, первичный ключ гарантирует уникальность данных и поддерживает референционную целостность в отношениях базы данных, в то время как уникальный ключ обеспечивает более гибкую проверку уникальности, позволяя оставить пробел для будущего заполнения записей. 4