完成models

main
RogerWork 2 years ago
parent 04b9a642aa
commit 3478c2cb00
  1. 3
      apps/basic/models.py
  2. 3
      apps/goods/models.py
  3. 64
      apps/order/models.py
  4. 27
      myshop_back/settings.py
  5. BIN
      requirements.txt

@ -1,6 +1,7 @@
from datetime import datetime from datetime import datetime
from django.db import models from django.db import models
from apps.user.models import MyUser
# Create your models here. # Create your models here.
@ -16,7 +17,7 @@ class Address(models.Model):
address = models.CharField(verbose_name='详细地址', max_length=100, default='') address = models.CharField(verbose_name='详细地址', max_length=100, default='')
contact_name = models.CharField(verbose_name='联系人', max_length=20, default='') contact_name = models.CharField(verbose_name='联系人', max_length=20, default='')
contact_mobile = models.CharField(verbose_name='联系电话', max_length=11, 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 是 is_default = models.IntegerField(verbose_name='是否是默认配送地址', default=0) # 0 不是 1 是
create_date = models.DateTimeField(verbose_name='创建时间', default=datetime.now()) create_date = models.DateTimeField(verbose_name='创建时间', default=datetime.now())

@ -1,6 +1,7 @@
from django.db import models from django.db import models
from common.base_model import BaseModel from common.base_model import BaseModel
from datetime import datetime from datetime import datetime
from apps.user.models import MyUser
from ckeditor_uploader.fields import RichTextUploadingField from ckeditor_uploader.fields import RichTextUploadingField
@ -49,7 +50,7 @@ class Goods(models.Model):
status = models.IntegerField(verbose_name='商品状态', default=0, choices=STATUS) status = models.IntegerField(verbose_name='商品状态', default=0, choices=STATUS)
main_img = models.ImageField(verbose_name='商品主图', upload_to='upload/goods_img', blank=True, null=True) main_img = models.ImageField(verbose_name='商品主图', upload_to='upload/goods_img', blank=True, null=True)
is_recommend = models.BooleanField(verbose_name='是否推荐', default=False) 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()) create_datetime = models.DateTimeField(verbose_name='创建时间', default=datetime.now())
def __str__(self): def __str__(self):

@ -1,3 +1,67 @@
from django.db import models from django.db import models
from apps.user.models import MyUser
from apps.goods.models import Goods
# Create your models here. # 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'

@ -11,11 +11,11 @@ https://docs.djangoproject.com/en/4.2/ref/settings/
""" """
from pathlib import Path from pathlib import Path
import sys, os
# Build paths inside the project like this: BASE_DIR / 'subdir'. # Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
@ -27,8 +27,8 @@ DEBUG = True
ALLOWED_HOSTS = [] ALLOWED_HOSTS = []
# Application definition # Application definition
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
INSTALLED_APPS = [ INSTALLED_APPS = [
'django.contrib.admin', 'django.contrib.admin',
@ -37,7 +37,7 @@ INSTALLED_APPS = [
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'apps.basic', 'apps.basic.apps.BasicConfig',
'apps.goods', 'apps.goods',
'apps.order', 'apps.order',
'apps.user', 'apps.user',
@ -76,18 +76,20 @@ TEMPLATES = [
WSGI_APPLICATION = 'myshop_back.wsgi.application' WSGI_APPLICATION = 'myshop_back.wsgi.application'
# Database # Database
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases # https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django.db.backends.sqlite3', 'ENGINE': 'django.db.backends.mysql',
'NAME': BASE_DIR / 'db.sqlite3', 'NAME': 'django_myshop',
'USER': 'root',
'PASSWORD': 'Sxzgx1209',
'HOST': 'home.rogersun.cn',
'PORT': '3306'
} }
} }
# Password validation # Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
@ -106,19 +108,19 @@ AUTH_PASSWORD_VALIDATORS = [
}, },
] ]
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/ # 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_I18N = True
USE_TZ = True USE_TZ = True
# Static files (CSS, JavaScript, Images) # Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/ # 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 # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
CKEDITOR_UPLOAD_PATH = 'upload/full_text'

Binary file not shown.
Loading…
Cancel
Save