from django.db import models
from django.utils.html import format_html
# Create your models here.
class CategoryModel(models.Model):
name = models.CharField(max_length=100, null=False, verbose_name='类别名称')
def __str__(self):
return '类别:%s' % (self.name)
def __repr__(self):
return self.__str__()
#产品表
#blank=True,允许后台表单上传时候为空,颜色会变为灰色
#verbose_name=字段后台表单名称。
class ProductModel(models.Model):
name = models.CharField(max_length=100, null=False,verbose_name='产品名称')
prodectImg = models.FileField(upload_to='./static/upload/',blank=True,verbose_name='产品图片')
brief = models.TextField(null=False,verbose_name='产品详情')
pub_date = models.DateTimeField('发布时间', null=True,blank=True)
category = models.ForeignKey(CategoryModel,on_delete=models.CASCADE)
def __str__(self):
return '%s产品:%s'%(self.id,self.name)
def __repr__(self):
return self.__str__()
def imgShow(self):
imgPath = str(self.prodectImg)
# print(self.titleImg)
imgPath = '/'+ imgPath
# return '<img style="height:150px;auto;" src="%s" />'%imgPath
return format_html(
'<img style="height:150px;auto;" src="{}" />',
imgPath,
)
def showProduct(self):
return format_html(
'<a href="/product/{}">{}</a>',
self.id,
self.name
)
class Meta:
verbose_name = '产品管理'
verbose_name_plural = '产品管理'
class OrderModel(models.Model):
product = models.ForeignKey(ProductModel, on_delete=models.CASCADE)
num = models.IntegerField()
price = models.CharField(max_length=100)
allPrice = models.CharField(max_length=100)
def __str__(self):
return '订单id:%s' % self.id
def __repr__(self):
return self.__str__()
class Meta:
verbose_name = '订单管理'
verbose_name_plural = verbose_name
#1对1的操作
class zhangfu(models.Model):
name = models.CharField(max_length=50)
class qizi(models.Model):
name = models.CharField(max_length=50)
zhangfu = models.OneToOneField('zhangfu', on_delete=models.CASCADE)
#1对多和1对1的操作
# p1 = ProductModel(name='xxx',brief='xxxx')
# order1 = OrderModel(product=p1,num='xxx',price='xxxxx')
#多对多的操作
#假设1篇文章可以在多个类别里,1个类别可以放多篇文章
#老师跟学生关系
class Student(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField(default=15)
class Teacher(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField(default=35)
student = models.ManyToManyField('Student')
#多对多添加的操作
# t1 = Teacher(name='xxx')
# t1.student.set([多个学生对象])
# class SwiperModel(models.Model):
# title = models.CharField(max_length=100, null=False)
# swiperImg = models.FileField(upload_to='./static/upload/')
# def imgShow(self):
# imgPath = str(self.swiperImg)
# # print(self.titleImg)
# imgPath = imgPath.replace('static/', '')
# return format_html(
# '<img style="height:150px;auto;" src="/jingtai/{}" />',
# imgPath,
# )
# class Meta:
# verbose_name = '首页轮播图管理'
# verbose_name_plural = '首页轮播图管理'