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     
조회수 108


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

으로 하셔도 됩니다.

  • 2016년 10월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close