class Shop(db.Model): id = db.PrimaryKeyField() name = db.CharField(max_length=80) #商品名称 ename = db.CharField(max_length=100) #商品英文名称 price = db.CharField(max_length=30) #商品价格 cid = db.IntegerField() #商品分类 level = db.TinyIntegerField(max_length=1, default=3) #甜度 resume = db.CharField() #简单介绍 intro = db.TextField() #详细介绍 prompt = db.TextField() #提示 args = db.TextField() #参数内容 cover = db.CharField(max_length=20) #头图 views = db.SmallIntegerField(default=0) #点击率 orders = db.SmallIntegerField(default=0) #购买次 status = db.TinyIntegerField(max_length=1, default=0) #是否推荐 0不推荐 1推荐 #9删除 created = db.IntegerField(default=int(time.time())) #添加时间 def validate(self): if self.name and self.ename and self.cid: if not re.match('^[0-9a-z]+$', "".join( self.ename.lower().split())): raise Exception('英文名只能是字母和数字组合') else: raise Exception('请输入商品名,英文名或设置所属分类id') class Meta: db_table = 'shops' order_by = ('-created', )
class Consult(db.Model): sid = db.IntegerField() #商品Id uid = db.IntegerField(default=0) #用户Id mobile = db.CharField(max_length=11) #用户名 content = db.TextField() #咨询内容 posted = db.IntegerField(default=int(time.time())) #咨询时间 reply = db.TextField() #回复内容 replyed = db.IntegerField(default=0) #回复时间 class Meta: db_table = 'consults'
class Page(db.Model): """ 静态页面 """ id = db.TinyPrimaryKeyField() name = db.CharField(max_length=20) slug = db.CharField(index=True, max_length=20) # 访问路径 content = db.TextField() # 页面内容 template = db.CharField(max_length=20, default='staticpage.html') def validate(self): if self.name and self.slug: self.slug = self.slug.lower() if not re.match('^[0-9a-z]+$', self.slug): raise Exception('访问目录只能是字母和数字组合') ft = ((Page.name == self.name) | (Page.slug == self.slug)) if self.id: ft = ft & (Page.id != self.id) if Page.select().where(ft).count() > 0: raise Exception('分类同名或者目录同名') else: raise Exception('请输入分类名或者访问目录') class Meta: db_table = 'page'