Django 4.0.1 models.py самостоятельно добавляет в бд поле "id"
мой код в models.py проекта django:
from django.db import models
class Articles(models.Model):
ArticleID = models.CharField('ArticleID', max_length=50)
EmployeeName = models.CharField('EmployeeName', max_length=50)
Department = models.CharField('Department', max_length=50)
После проведения миграций и добавления данных в БД появляется следующая структура:
id:13
ArticleID:"12"
EmployeeName:"20"
Department:"574"
Как убрать добавление поля 'id' в бд либо заменять его на 'ArticleID', чтобы осталась следующая структура:
ArticleID:"12"
EmployeeName:"20"
Department:"574"
В классе обозначить поле для primary_key
from django.db import models
class Articles(models.Model):
ArticleID = models.CharField('ArticleID', max_length=50, primary_key=True) # здесь
EmployeeName = models.CharField('EmployeeName', max_length=50)
Department = models.CharField('Department', max_length=50)
В данном примере объясняется данное поведение. Если вы не определяете явно primary_key, то автоматически добавляется поле id с автоинкрементом уникальных значений
из доки
If you don’t specify primary_key=True for any fields in your model, Django will automatically add an IntegerField to hold the primary key, so you don’t need to set primary_key=True on any of your fields unless you want to override the default primary-key behavior.
Перевод
Если вы не указали
primary_key=Trueдля одного из полей вашей модели, Джанго автоматически добавит полеIntegerFieldдля хранения первичного ключа, так что вам нет необходимости устанавливатьprimary_key=Trueдля какого либо поля до тех пор пока вам не понадобится переопределить поведениеprimary-keyпо умолчанию.