본문 바로가기

web/Django

Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. - django 3.2 version up

기존 django 2.*에서 3.2로 업데이트 시 실행을 하면 다음과 같은 wanning이 나옵니다.

Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. 
HINT: Configure the DEFAULT_AUTO_FIELD setting or the VendorsConfig.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.

 

django 3.2부터는 모델의 primary key의 속성을 설정해 줘야 합니다. 기본 키의 설정은 DEFAULT_AUTO_FIELD의 키로 프로젝트 / 앱 / 모델 별로 설정이 가능합니다.

 

프로젝트 전체 세팅

# settings.py
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

 

app별 세팅

# apps.py

from django.apps import AppConfig

class MyAppConfig(AppConfig):
    default_auto_field = 'django.db.models.AutoField'
    name = 'my_app'

 

 

모델별 세팅

# models.py

from django.db import models

class MyModel(models.Model):
    id = models.AutoField(primary_key=True)

 

 

docs.djangoproject.com/en/3.2/releases/3.2/docs.djangoproject.com/en/3.2/releases/3.2/#customizing-type-of-auto-created-primary-keys

 

Django 3.2 release notes | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com