Django2 (2. Model 구성) feat.페스트캠퍼스

min seung moon·2021년 3월 15일
0

Django

목록 보기
18/37
post-thumbnail

1. fcuser Model 구성하기!

from django.db import models

# Create your models here.


class Fcuser(models.Model):
    email = models.EmailField(verbose_name='이메일')
    password = models.CharField(max_length=64, verbose_name='비밀번호')
    register_date = models.DateTimeField(
        auto_now_add=True, verbose_name='등록날짜')

    class Meta:
        db_table = 'fastcampus_fcuser'
        verbose_name = '사용자'
        verbose_name_plural = '사용자'

2. Product Model 구성하기!

from django.db import models

# Create your models here.


class Product(models.Model):
    name = models.CharField(max_length=256, verbose_name='상품명')
    price = models.IntegerField(verbose_name='상품가격')
    # TextField는 text 제한이 ㅇ벗다
    description = models.TextField(verbose_name='상품설명')
    stock = models.IntegerField(verbose_name='재고')
    register_date = models.DateTimeField(
        auto_now_add=True, verbose_name='등록날짜')

    class Meta:
        db_table = 'fastcampus_product'
        verbose_name = '상품'
        verbose_name_plural = '상품'

3. Order Model 구성하기!

from django.db import models

# Create your models here.


class Order(models.Model):
    # 어떤 사용자가 어떤 제품을 주문하기에 외래키인 ForeignKey가 필요
    # fcuser안에 있는 Fcuser라는 클래스를 불러온다!
    # ForeignKey를 사용할 때는 on_delete를 꼭 설정해줘야 한다(사용자가 삭제되었을 때 주문 데이터는 어떻게 처리할지)
    # on_delete=models.CASCADE로 설정하게 되면 사용자가 삭제되면 주문 데이터도 같이 삭제된다
    fcuser = models.ForeignKey(
        'fcuser.Fcuser', on_delete=models.CASCADE, verbose_name='사용자')
    product = models.ForeignKey(
        'product.Product', on_delete=models.CASCADE, verbose_name='상품')
    quantity = models.IntegerField(verbose_name='수량')
    register_date = models.DateTimeField(
        auto_now_add=True, verbose_name='등록날자')

    class Meta:
        db_table = 'fastcampus_order'
        verbose_name = '주문'
        verbose_name_plural = '주문'

4. migration

01. root 폴더 내부의 settings.py에 설정!

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'fcuser',
    'product',
    'order',
]

02. makemigrations 해주기

python manage.py makemigrations

03. migrate 해주기!

python manage.py migrate  

profile
아직까지는 코린이!

0개의 댓글