From 3478c2cb00bc24c81e1cd1e5ee598802f4c620cd Mon Sep 17 00:00:00 2001 From: RogerWork Date: Sat, 19 Aug 2023 14:56:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90models?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/basic/models.py | 3 +- apps/goods/models.py | 3 +- apps/order/models.py | 64 ++++++++++++++++++++++++++++++++++++++++ myshop_back/settings.py | 27 ++++++++++------- requirements.txt | Bin 278 -> 310 bytes 5 files changed, 84 insertions(+), 13 deletions(-) diff --git a/apps/basic/models.py b/apps/basic/models.py index 82adb40..321c10c 100644 --- a/apps/basic/models.py +++ b/apps/basic/models.py @@ -1,6 +1,7 @@ from datetime import datetime from django.db import models +from apps.user.models import MyUser # Create your models here. @@ -16,7 +17,7 @@ class Address(models.Model): address = models.CharField(verbose_name='详细地址', max_length=100, default='') contact_name = models.CharField(verbose_name='联系人', max_length=20, default='') contact_mobile = models.CharField(verbose_name='联系电话', max_length=11, default='') - user = models.ForeignKey(verbose_name='用户', to='', on_delete=models.DO_NOTHING) + user = models.ForeignKey(verbose_name='用户', to=MyUser, on_delete=models.DO_NOTHING) is_default = models.IntegerField(verbose_name='是否是默认配送地址', default=0) # 0 不是 1 是 create_date = models.DateTimeField(verbose_name='创建时间', default=datetime.now()) diff --git a/apps/goods/models.py b/apps/goods/models.py index 6c1943a..de2d5f7 100644 --- a/apps/goods/models.py +++ b/apps/goods/models.py @@ -1,6 +1,7 @@ from django.db import models from common.base_model import BaseModel from datetime import datetime +from apps.user.models import MyUser from ckeditor_uploader.fields import RichTextUploadingField @@ -49,7 +50,7 @@ class Goods(models.Model): status = models.IntegerField(verbose_name='商品状态', default=0, choices=STATUS) main_img = models.ImageField(verbose_name='商品主图', upload_to='upload/goods_img', blank=True, null=True) is_recommend = models.BooleanField(verbose_name='是否推荐', default=False) - user = models.ForeignKey(verbose_name='用户', to='', on_delete=models.DO_NOTHING, blank=True, null=True) + user = models.ForeignKey(verbose_name='用户', to=MyUser, on_delete=models.DO_NOTHING, blank=True, null=True) create_datetime = models.DateTimeField(verbose_name='创建时间', default=datetime.now()) def __str__(self): diff --git a/apps/order/models.py b/apps/order/models.py index 71a8362..eeec93b 100644 --- a/apps/order/models.py +++ b/apps/order/models.py @@ -1,3 +1,67 @@ from django.db import models +from apps.user.models import MyUser +from apps.goods.models import Goods + # Create your models here. + +class Cart(models.Model): + """ + 购物车模型 + """ + user = models.ForeignKey(verbose_name='用户', to=MyUser, on_delete=models.DO_NOTHING, null=True, blank=True) + goods = models.ForeignKey(verbose_name='商品', to=Goods, on_delete=models.DO_NOTHING, null=True, blank=True) + goods_num = models.IntegerField(verbose_name='购物车中的商品数量', default=1) + + def __str__(self): + return str(self.goods.id) + + class Meta: + verbose_name = '购物车信息' + verbose_name_plural = '购物车信息' + managed = True + db_table = 'd_cart' + + +class Order(models.Model): + ORDER_STATUS = ( + ('paying', '待支付'), + ('paid', '已支付'), + ('shipping', '配送中'), + ('complete', '订单结束'), + ('cancel', '订单取消'), + ) + order_id = models.CharField(verbose_name='订单号', max_length=50, null=True, blank=True) + order_total = models.IntegerField(verbose_name='商品总件数', default=0) + order_price = models.DecimalField(verbose_name='订单中金额', max_digits=10, decimal_places=2, default=0) + address = models.CharField(verbose_name='收货地址', max_length=100, default='') + contact_name = models.CharField(verbose_name='联系人', max_length=20, default='') + contact_mobile = models.CharField(verbose_name='联系电话', max_length=11, default='') + pay_method = models.IntegerField(verbose_name='支付方式', default=0) + memo = models.CharField(verbose_name='订单备注', max_length=200, default='') + order_status = models.IntegerField(verbose_name='用户', choices=ORDER_STATUS, max_length=20) + user = models.ForeignKey(verbose_name='用户', to=MyUser, on_delete=models.DO_NOTHING) + create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True) + + class Meta: + verbose_name = '订单信息' + verbose_name_plural = '订单信息' + managed = True + db_table = 'd_order' + + +class OrderGoods(models.Model): + """ + 订单商品关联表 + """ + order = models.ForeignKey(verbose_name='订单主表', to=Order, on_delete=models.DO_NOTHING) + goods = models.ForeignKey(verbose_name='商品表', to=Goods, on_delete=models.DO_NOTHING) + goods_num = models.IntegerField(verbose_name='商品数量', default=0) + price = models.DecimalField(verbose_name='下单时商品价格', max_digits=10, decimal_places=2) + create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True) + + class Meta: + verbose_name = '订单商品信息' + verbose_name_plural = '订单商品信息' + managed = True + db_table = 'd_order_goods' diff --git a/myshop_back/settings.py b/myshop_back/settings.py index 1d8b64c..97e3c51 100644 --- a/myshop_back/settings.py +++ b/myshop_back/settings.py @@ -11,11 +11,11 @@ https://docs.djangoproject.com/en/4.2/ref/settings/ """ from pathlib import Path +import sys, os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent - # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ @@ -27,8 +27,8 @@ DEBUG = True ALLOWED_HOSTS = [] - # Application definition +sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) INSTALLED_APPS = [ 'django.contrib.admin', @@ -37,7 +37,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', - 'apps.basic', + 'apps.basic.apps.BasicConfig', 'apps.goods', 'apps.order', 'apps.user', @@ -76,18 +76,20 @@ TEMPLATES = [ WSGI_APPLICATION = 'myshop_back.wsgi.application' - # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'django_myshop', + 'USER': 'root', + 'PASSWORD': 'Sxzgx1209', + 'HOST': 'home.rogersun.cn', + 'PORT': '3306' } } - # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators @@ -106,19 +108,19 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] - # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +# LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'zh-hans' -TIME_ZONE = 'UTC' +# TIME_ZONE = 'UTC' +TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_TZ = True - # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ @@ -128,3 +130,6 @@ STATIC_URL = 'static/' # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + + +CKEDITOR_UPLOAD_PATH = 'upload/full_text' \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index bb8550f3b9bd033d62903e1771a9b874be67996c..580094acc6bd79d45e59277e10633bf3b680bc35 100644 GIT binary patch delta 33 lcmbQnw2f)P0`UNbOokjF%x5TPumwUx1_K5?27`&y>j97W2k!s? delta 9 QcmdnSG>vJ(f{6#p027`BNB{r;