Django 3(4.既存モデルの拡張)feat.鼠疫キャンパス

1935 ワード

1.オーダーのモデルを変更します。


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を使用しており、返金を受けた場合は、注文ステータスを返金に変換し、在庫を増やす必要があります!
  • そうすると、データベース内のトランザクションも処理できないかもしれませんが、ユーザーは不便です.

    03.秩序のモデル。pyに追加された部分を移行!

    python manage.py makemigrations
    
     python manage.py migrate
  • 新しく出現したモデルがdefaultまたはnullを設定していない場合は、追加の移行と同時に既存のデータ変更値を設定する必要があります.