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 по умолчанию.

Вернуться на верх