서비스를 이용하다가 1개 계정당 게임 캐릭터를 1개 사용할 수 있다던지하는 예를 본 적이 있을 것이다.
계정 데이터를 갖고 있는 User 테이블과 게임 캐릭터 정보를 갖고 있는 Charater 테이블을 만들면 아래와 같다.
User |
|||
id | username | password |
|
1 | streetfighter | realguy@world.com |
************** |
2 | kingoffighter |
toughguy@world.com |
*********** |
Character |
||||
id |
user(OneToOne) | name |
type |
gender |
1 |
1 | 길거리파이터 |
태권도 |
여자 |
2 |
2 | 싸움왕 |
무에타이 |
남자 |
로그인시 사용하는 계정 이름이 "streetfighter"인 사용자는 게임에서 "길거리파이터"라는 캐릭터 이름을 갖고 있다.
즉 "streetfighter"로 접속한 사람이 게임에서 사용할 캐릭터는 "길거리파이터" 뿐인 것이다.
이렇게 1대1로 인스턴스를 이어주는 역할을 하는 것이 OneToOneField이다.
서로 데이터가 연결되어있으니 User 테이블에서 Charater 테이블로 자유롭게 접근이 가능해진다.
OneToOneField를 사용하기 위해서는 관계를 맺을 테이블에서 새로 필드를 만들어서 자신의 테이블명을 입력하면 완성된다.
1 2 3 4 5 | class Character(models.Model): user = models.OneToOneField(User) name type gender | cs |
'코딩 연습 > Django' 카테고리의 다른 글
모델 폼에서 입력한 데이터를 다시 불러 수정하기 (0) | 2018.12.01 |
---|---|
ModelForm을 통해 입력 받은 값 View에서 처리하기 (0) | 2018.11.30 |
View에서 authenticate 함수 활용하기 (회원 인증 받기) (0) | 2018.11.28 |
내장된 User 모델 활용하기(회원 등록 받기) (0) | 2018.11.28 |
관리자 승인 후 댓글 노출하기(BooleanField 사용하기) (0) | 2018.11.25 |