Django3 (4. 기존 모델의 확장) feat.페스트캠퍼스

min seung moon·2021년 3월 30일
0

DJANGO3

목록 보기
4/10

1. 주문(order)의 model 수정!

01. 주문의 상태와 메모를 남길수 있게 수정!

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='수량')
    status = models.CharField(default='대기중', max_length=32, verbose_name='상태')
    memo = models.TextField(null=True, blank=True, verbose_name='메모')
    register_date = models.DateTimeField(
        auto_now_add=True, verbose_name='등록날자')

    def __str__(self):
        return str(self.fcuser) + ' ' + str(self.product)

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

02. 주문과 상품에서 재고를 관리하는 관리자 페이지!

  • 지금 django admin을 backoffice를 사용하면 환불을 받았을 경우 주문 상태를 환불로 바꾸고 재고를 늘려야 하는 작업이 있다!
  • 그러면 DB의 트랜잭션도 작업이 안되는것도 있지만 사용자 편의성이 없다

03. order의 models.py에 추가된 부분 migration하기!

python manage.py makemigrations

 python manage.py migrate

  • 만약에 새롭게 생기는 model에 default나 null을 설정안하면 추가적으로 마이그레이션을 하면서 기존의 데이터 수정 값을 설정해줘야 한다
profile
아직까지는 코린이!

0개의 댓글