>

모델에 "CharField"필드가 있는데, 사용자가 프로젝트를 만들 때 IntegerField/CharField를 Django에서 기본 자동 증가 필드로 만드는 방법은 1000001, 1000002? 또는 year  + 00001, 00002, 0003 등, 하나 이상의 AutoField를 가질 수 없으며 필드에 이미 많은 데이터가 있습니다.

  • 답변 # 1

    솔루션은 필드를 자동 필드로 만듭니다. 자동 필드로 설정하면 django는 기본 키를 추가하지 않아 오류가 발생합니다

    와이즈 비즈

    can't have more than one AutoField. You need to explicitly specify the primary key as

    1000001부터 계산을 시작하는 가장 좋은 방법은 마이그레이션 파일을 수정하는 것입니다. 사용중인 데이터베이스에 따라 다릅니다. Postgres를 사용하면 다음과 같습니다. 마이그레이션 작업을 편집하거나 SQL 명령 DB 명령 프롬프트를 실행하십시오.

    field = models.AutoField(primary_key=True) # or False
    
    

    와이즈 비즈

    맞춤형 자동 입력란을 원하면 char 필드를 만들고 편집 가능한 false를 만들 수 있습니다. 그런 다음 수동으로 값을 지정하십시오. 참조 : https://techstream.org/Web-Development/Custom-Auto-Increment-Field-Django

    operations = [ migrations.CreateModel(...), # mysql specific migrations.RunSQL('alter table tablename auto_increment=1000001'), ]

관련 자료

  • 이전 r - 대문자와 소문자로 벡터 나누기
  • 다음 kotlin에서 바이트에 대한 산술 연산이 int를 반환하는 이유는 무엇입니까?