django 에서 id를 만들때

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

  • AutoField를 쓰지 말아야 하는 이유가 있나요? 허대영(Daeyoung Heo) 2016.10.18 17:27
  • 네 mysql에서 다대다 조인 테이블을 만들었는데요. 그 테이블에 외래키로 쓸 pk를 id가 아닌 다른 필드로 지정했습니다. Jinwithyoo 2016.10.19 02:48

1답변

  • 좋아요

    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
    

    으로 하셔도 됩니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.