# restaurant/models.py
from django.db import models
# Create your models here.
class MyTopping(models.Model):
class Meta:
db_table = "my_topping"
def __str__(self):
return self.topping_name
topping_name = models.CharField(max_length=100)
class MyPizza(models.Model):
class Meta:
db_table = "my_pizza"
def __str__(self):
return self.pizza_name
pizza_name = models.CharField(max_length=100)
pizza_topping = models.ManyToManyField(MyTopping)
모델을 만든 후에는
python manage.py makemigrations
python manage.py migrate
새로고침을 누르면 새 DB가 생성돼 있다.
이것을 편하게 보기 위해 admin 관리자 페이지에 추가한다.
from django.contrib import admin
from .models import MyTopping, MyPizza # 우리가 만든 모델을 불러온다.
# Register your models here.
admin.site.register(MyPizza)
admin.site.register(MyTopping)
위와 같이 admin 화면에 적용할 수 있다.
서버를 켜고 확인하기 전에 한 가지 더 확인해야 할 것은
우리가 사용자모델을 django model로 확장했기 때문에
superuser 관리자계정을 만들어야 한다.
관리자계정 들어갔더니 아래와 같이 토핑이 등록되지 않는 오류가 발생한다.
파이참에서 서버 종료한 후 DB 삭제한다.
db.sqlite3 오른쪽 클릭 > delete
db를 새로 생성한다.
그 전에 각 파일에서 작업해야 할 것은
각 앱 tweet, user, restaurant의 migrations의 하위 폴더를 init.py 제외하고 삭제한다.
유저모델 테이블을 우리가 만든 모델로 바꾸면서 관리자 관련 정보들이 제대로 세팅되어 있지 않다.
그래서 한 번 DB를 지우고 실행해주려 한다.
▽ DB에서도 오른쪽 클릭하여 remove
다시 한 번 migrations, migrate, superuser
migrations, migrate를 하면 왼쪽에 DB(sqlite3)이 생긴다.
그것을 우측 DB창으로 드래그하면 DB 테이블을 확인할 수 있다.
을 만들었다.