class User(models.Model):
email = models.CharField(max_length=45)
password = models.ChatField(max_length=200)
class Address(models.Model):
user = models.Foreignkey(User, on_delete=models.CASCADE)
class Menu(models.Model):
name = models.CharField(max_length=45)
def __str__(self):
return self.name
str() 메서드는 메뉴 클래스의 객체의 문자열 표현을 리턴한다.
default 값은 모델명 object 이다.
디폴트인 경우 객체를 알아보기 어려우므로 정의하는것이 좋다
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
class Membership(models.Model):
person = models.ForeignKey(Person, on_delete=modles.CASCADE)
group = mddels.ForeignKey(Group, on_delete=models.CASCADE)
모델 클래스 내부에 Meta라는 이름의 클래스를 선언하여 모델에 메타 데이터를 추가
class User(models.Model):
number = models.IntegerField()
class Meta:
db_table = 'users'
# 데이터베이스 테이블의 이름을 users로 지정
역참조 경우 기존 속성으로 객체 호출 불가
호출 하기 위해
1. [classname]_set 속성 사용
2. related_name 사용
class User(models.Model):
name = models.CharField(max_length=45)
job = models.ForeignKey('Occupation', on_delete = models.CASCADE)
class Occupation(models.Model):
name = models.CharField(max_length=45)