django 에서 id를 만들때

조회수 3962회

안녕하세요 장고 model필드를 정의할때 primary key를 정의하고 id = models.IntegerField() 로 정의를 했을때 AutoField처럼 아이디 번호가 row마다 자동 증가하게끔 만드는 방법이 있을까요??

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • AutoField를 쓰지 말아야 하는 이유가 있나요? 허대영(소프트웨어융합대학) 2016.10.18 17:27
  • 네 mysql에서 다대다 조인 테이블을 만들었는데요. 그 테이블에 외래키로 쓸 pk를 id가 아닌 다른 필드로 지정했습니다. 알 수 없는 사용자 2016.10.19 02:48

1 답변

  • Django는 참고로 모델 생성시 id 필드를 자동으로 생성해줍니다. 굳이 model안에 id 필드를 안 만드셔도 migrate 하시고 나면 모델명.id로 사용 가능합니다.

    만드신다면

    id = models.AutoField(primary_key=True)
    

    을 사용하셔도 되구

    class Users(models.Model):
        something = models.PositiveIntergerField(unique=True, default=number)
    
        def number(self):
            num = Users.objects.count()
            if num == None:
                return 1
            else:
                return num + 1
    

    으로 하셔도 됩니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)