examtest/test_server/cms/models.py

117 lines
4.3 KiB
Python

from django.db import models
from rbac.models import CommonModel
# Create your models here.
class Article(CommonModel):
'''
文章
'''
title = models.CharField(max_length=60, verbose_name='标题')
elink = models.URLField(verbose_name='外部链接', null=True, blank=True)
content = models.TextField(verbose_name='内容', blank=True)
ifrom = models.CharField(max_length=60, verbose_name='来源')
is_top = models.BooleanField('置顶', default=False)
type = models.IntegerField('类型', default=0)
class Meta:
verbose_name = '文章'
verbose_name_plural = verbose_name
def __str__(self):
return self.title
class Material(CommonModel):
"""
学习资料
"""
type_choices = (
('文档', '文档'),
('视频', '视频'),
('图片', '图片'),
('音乐', '音乐'),
)
name = models.CharField(max_length=200, verbose_name='标题', unique=True)
description = models.TextField('描述', null=True, blank=True)
path = models.CharField(max_length=1000, verbose_name='文件地址')
poster = models.CharField(max_length=10000, verbose_name='封面地址', null=True, blank=True)
cate = models.CharField('分类', max_length=50, default='未分类')
type = models.CharField('格式', default='文档', max_length=50)
down_count = models.IntegerField('阅读量', default=0)
sort = models.IntegerField('排序码', default=1)
class Source(CommonModel):
name = models.CharField('来源名称', max_length=200)
author = models.CharField('作者', max_length=100, null=True, blank=True)
publish_year = models.PositiveSmallIntegerField('发表年份', null=True, blank=True)
note = models.TextField('备注', null=True, blank=True)
class Threshold(CommonModel):
source = models.ForeignKey(Source, verbose_name='来源', on_delete=models.CASCADE)
compound_cate = models.CharField('化合物分类', max_length=10)
odor_type = models.CharField('气味类型', null=True, blank=True, max_length=50)
threshold_type = models.CharField('阈值类型', null=True, blank=True, max_length=50)
toxicity_type = models.CharField('毒性类型', null=True, blank=True, max_length=50)
chinese_name = models.CharField('中文名', max_length=50)
ppm = models.FloatField('ppm值')
ppm_sign = models.CharField('ppm符号标记', max_length=10, default='=')
mass = models.FloatField('质量浓度')
toxicity = models.FloatField('毒性', null=True, blank=True)
mass_sign = models.CharField('质量浓度符号标记', max_length=10, default='=')
molecular = models.FloatField('分子质量')
cas = models.CharField('cas号', max_length=20)
class Userpz(CommonModel):
art_name = models.CharField('姓名', max_length=50)
art_photo = models.CharField('照片', max_length=100)
art_cate = models.CharField('类别', null=True, blank=True, max_length=50)
art_honor = models.CharField('荣誉', null=True, blank=True, max_length=100)
art_remark = models.TextField('备注', null=True, blank=True)
def __str__(self):
return self.art_name
class Youpeidetail(CommonModel):
remark = models.TextField('备注', null=True, blank=True)
def __str__(self):
return self.remark
class CompanyInfo(CommonModel):
company_name = models.CharField('父公司名称', max_length=50)
edu_points = models.FloatField('教育积分', null=True, blank=True)
co_sponsor_points = models.FloatField('协办大赛积分', null=True, blank=True)
sum_points = models.FloatField('总积分', null=True, blank=True)
photo = models.CharField('公司图片', null=True, blank=True, max_length=100)
remark = models.TextField('备注', null=True, blank=True)
def __str__(self):
return self.company_name
def save(self, *args, **kwargs):
self.sum_points = (self.edu_points or 0) + (self.co_sponsor_points or 0)
super(CompanyInfo, self).save(*args, **kwargs)
class ChildrenCompany(CommonModel):
child_edu_points = models.FloatField('教育积分', null=True, blank=True)
child_co_sponsor_points = models.FloatField('协办大赛积分', null=True, blank=True)
parent_company = models.ForeignKey(CompanyInfo, verbose_name='父公司', on_delete=models.CASCADE)
def __str__(self):
return self.child_company_name