Разница между foreign key и primary key в Django заключается в их назначении:
- Primary key определяет уникальное значение для строки в таблице. 5 По умолчанию Django добавляет поле id к каждой модели, которое используется в качестве первичного ключа для этой модели. 2
- ForeignKey соединяет таблицы, используя значение первичного ключа из другой таблицы. 5 Используется для указания отношения «один ко многим» к другой модели базы данных (например, автомобиль имеет одного производителя, но производитель может делать много автомобилей). 1
Таким образом, первичный ключ определяет уникальность записи в таблице, а внешний ключ связывает таблицы, используя первичный ключ другого объекта. 5
Для создания собственного поля первичного ключа нужно добавить к полю аргумент primary_key=True. 2