汽车系统表模型

'''
2、完成汽车系统表模型的建立(表关系自己设计)
    汽车表、汽车商家表、赞助商表、赞助商详情表

3、完成汽车系统的接口编写
    汽车表:八大接口(不需要写put方法)
    汽车商家表:八大接口(不需要写put方法)
'''
from django.db import models

# 汽车表、汽车商家表、赞助商表、赞助商详情表
class BaseModel(models.Model):
    is_delete = models.BooleanField(default=False)
    createdTime = models.DateTimeField(auto_now_add=True)
    class Meta:
        abstract = True

class Car(BaseModel):
    name = models.CharField(max_length=64)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    brand = models.ForeignKey(to='Brand', db_constraint=False, null=True, on_delete=models.SET_NULL, related_name='cars')
    sponsors = models.ManyToManyField(to='Sponsor', db_constraint=False, related_name='cars')

    @property
    def brand_name(self):
        return self.brand.name

    @property
    def sponsor_list(self):
        sponsor_list_temp = []
        for sponsor in self.sponsors.all():
            sponsor_dic = {
                'name': sponsor.name
            }
            try:
                sponsor_dic['phone'] = sponsor.detail.phone
            except:
                sponsor_dic['phone'] = '未知'
            sponsor_list_temp.append(sponsor_dic)
        return sponsor_list_temp

    class Meta:
        verbose_name_plural = '汽车'

    def __str__(self):
        return self.name

class Brand(BaseModel):
    name = models.CharField(max_length=64)

    class Meta:
        verbose_name_plural = '品牌'

    def __str__(self):
        return self.name

class Sponsor(BaseModel):
    name = models.CharField(max_length=64)

    @property
    def phone(self):
        try:
            return self.detail.phone
        except:
            return "无"

    class Meta:
        verbose_name_plural = '赞助商'

    def __str__(self):
        return self.name

class SponsorDetail(BaseModel):
    phone = models.CharField(max_length=11)
    sponsor = models.OneToOneField(to=Sponsor, db_constraint=False, on_delete=models.CASCADE, related_name='detail')

    class Meta:
        verbose_name_plural = '赞助商详情'

    def __str__(self):
        try:  # 连表可能会出现问题,所以要异常处理
            return self.sponsor.name + '的详情'
        except:
            return super().__str__()

原文地址:https://www.cnblogs.com/samoo/p/12120645.html

时间: 2024-10-11 02:52:41

汽车系统表模型的相关文章

ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function testdb(){ $obj=M("User"); dump($obj); } 此时浏览器输出: object(Model)#5 (20) { ["_extModel:private"] => NULL ["db:protecte

oracle/ms sql 系统表

sql server系统表详细说明 sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurconfigs主数据库当前配置选项 sysdatabases主数据库服务器中的数据库 syslanguages主数据库语言 syslogins主数据库 登陆帐号信息 sysoledbusers主数据库 链接服务器登陆信息 sysprocesses主数据库进程 sysremotelogins主数据库 远程

FAQ系列 | ibdata1系统表空间文件都包含什么内容

InnoDB系统表空间文件ibdata1中存储了以下几部分信息: Data dictionary Double write buffer Insert buffer Rollback segments UNDO space Foreign key constraint system tables 因此,我们在初始化ibdata1时,最好设置大一些,比如至少1GB以上. 此外,从MySQL 5.6版本开始,支持将UNDO Space放在独立的undo表空间里,强烈建议使用. 这样就可以避免因为在高

使用ajax进行汽车详情表的查询

主界面代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Co

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

002_系统表查询(sysdatabases等)

--1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name --2.获取所有表名: --SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name SELECT * FROM sys.SysObjects Where XType='U' ORDER BY Name SELECT * FROM SysObjects WHERE Name  ='

sql 系统表(sys.sysobjects)

1 select distinct type from sys.sysobjects  查询系统表的type信息 2 type 字段 AF = 聚合函数 (CLR)C = CHECK 约束D = DEFAULT(约束或独立)F = FOREIGN KEY 约束PK = PRIMARY KEY 约束P = SQL 存储过程PC = 程序集 (CLR) 存储过程FN = SQL 标量函数FS = 程序集 (CLR) 标量函数FT = 程序集 (CLR) 表值函数R = 规则(旧式,独立)RF = 复

系统视图,系统表,系统存储过程的使用

获取数据库中用户表信息 1.获取特定库中所有用户表信息 select * from sys.tables select * from sys.objects  where type='U'  --用户表 第二条语句中当type='S'时是系统表 2.获取表的字段信息 select * from sys.columns where object_id=object_id('表名') select * from syscolumns where id=OBJECT_ID('表名' ) 3.获取当前库

dp表模型-如何写出for循环动态规划

题目很肤浅.. 但是这件事我们要做.. 那么有一种方法叫做刷表法.. 当你发现这个问题具有最优子结构,重叠子问题时 那么这是一个dp问题是使用本方法的前提 画出该dp状态所对应的矩阵 画出转移关系线...找出前置依赖的所有状态 如果我们能找到该表的一个遍历顺序可以使得 每次计算都依赖之前已经计算好的结果计算出来 那么我们就能正确地写出这个dp的递推写法 举个例子..矩阵链乘法是按dp表对角线转移 而最长公共子序列就正常m*n地for转移 ============= 这是解决dp问题的一个典型的d