メインプロジェクトレビュー-Dr.Tart(1)-
23730 ワード
突然Pythonの文章だけの私の携帯電話のベルの中に現れたプロジェクトの回顧...ブログを書くことにあまり興味がない私は...もう一週間も忘れていない.当日習ったのは当日書けばそれに越したことはないのですが、今日も書くならプロジェクトから振り返る予定です.
1.プロジェクト企画
プロジェクトチームの発表初日.どんなサイトがクローニングされるのか心配な期待クラスで、化粧品サイトDr.jartチームに加入しました.
日常生活に飽きたあなたのために、Dr.tartはデザートをあげました.
「新青年」のスローガンを決め、役を割り当て始めた.
2.モデリング
現在はフロントとバックグラウンドに分かれて進行方向を設定し、プロジェクトの骨格をつかむため、鄭鍱朱豪とモデリングを開始した.どのようにモデリングを行うかはプロジェクトの方向性や機能実現の成否を決めるので、本当に努力して行いました.(2-3日かけていたようです)
Dr.tartはデザートを販売するビジネスサイトで、対応するモデリングが必要です.
モデリングの面では、残念なことに、Dr.jartのホームページをあまり参考にしていません.ビジネスサイトは悪くないだろうな~という安易な考えがプロジェクト中期から後期にかけて何度も足を引っ張った.機能の実現を目的としたモデリングを開始します.
ERDコメントを受けたときにいくつかのフィードバックを得ました.
第2正規化や有効IDに触れていないのが残念です.decimalの場合、使うのは難しくありませんが、事務は非常に重要な概念なので、他の文章では単独で整理します!
3. Models.pyの作成
ERDモデリングに基づくモデル.pyの作成を始め、
users/models.py
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.CharField(max_length=250, unique=True)
password = models.CharField(max_length=300)
address = models.CharField(max_length=100)
vegan_or_not = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'users'
products/models.pyfrom django.db import models
from users.models import User
class Menu(models.Model):
name = models.CharField(max_length=20)
class Meta:
db_table='menus'
class Category(models.Model):
name = models.CharField(max_length=50)
menu = models.ForeignKey(Menu, on_delete=models.CASCADE)
class Meta:
db_table='categories'
class Product(models.Model):
korean_name = models.CharField(max_length=20)
english_name = models.CharField(max_length=20)
thumbnail_image_url = models.URLField(max_length=200)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
vegan_or_not = models.BooleanField(default=False, null=False)
sugar_level = models.IntegerField(default=1)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
description = models.CharField(max_length=1000)
class Meta:
db_table='products'
class Image(models.Model):
url = models.URLField(max_length=300)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
class Meta:
db_table='images'
class Review(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
content = models.CharField(max_length=200, null=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
db_table='reviews'
class ReviewComment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
review = models.ForeignKey(Review, on_delete=models.CASCADE)
content = models.CharField(max_length=100, null=True)
class Meta:
db_table='review_comments'
class Like(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
class Meta:
db_table='likes'
orders/models.pyfrom django.db import models
class Cart(models.Model):
product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
user = models.ForeignKey('users.User', on_delete=models.CASCADE)
quantity = models.IntegerField(default=0)
class Meta:
db_table = 'carts'
class OrderStatus(models.Model):
status = models.CharField(max_length=20)
class Meta:
db_table = 'order_status'
class Order(models.Model):
user = models.ForeignKey('users.User', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True, null=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
address = models.CharField(max_length=100)
order_status = models.ForeignKey('OrderStatus', on_delete=models.CASCADE)
class Meta:
db_table = 'orders'
class OrderItem(models.Model):
order = models.ForeignKey('Order', on_delete=models.CASCADE)
product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
created_at = models.DateTimeField(auto_now_add=True, null=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
class Meta:
db_table = 'order_items'
上記のモデリング作業が完了しました.次の記事では、これに基づいてviewを作成することについて説明します.Reference
この問題について(メインプロジェクトレビュー-Dr.Tart(1)-), 我々は、より多くの情報をここで見つけました https://velog.io/@93_bulldozer/1차-프로젝트-회고-Dr.Tart1-テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol