django中的积累
只要继承了model.Model, 就会生成一个新的表,但是,如果在Meta方法中添加abstract=True,就不会产生新的表,而是作为一个基类存放多个表共同拥有的方法和字段等
from django.db import models class Commen(models.Model):
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
class Meta:
# 添加关键字,不会产生新的表
abstract = True
# 这张表继承了Base,哪怕没有字段create_time和update_time,也同样会展示出来
class CourseType(Base):
title = models.CharField('课程类别',max_length=16)
sequence = models.IntegerField('展示顺序',default=10) class Meta:
db_table = 'tb_coursetype' def __str__(self):
return self.title
# 路径表
class Path(Base):
title = models.CharField('路径名', max_length=16)
img = models.ImageField('路径图片', upload_to='path', null=True)
desc = models.CharField('路径描述', max_length=255)
user = models.ManyToManyField('user.User', blank=True)
def course_total(self):
count = 0
for jd in self.jieduan.all():
count = count + jd.courses.count()
return count
class Meta:
db_table = 'tb_path'
def __str__(self):
return self.title

class JieDuan(Base):
title = models.CharField('阶段名', max_length=16)
serial_num = models.IntegerField('阶段序号')
path = models.ForeignKey(Path, related_name='jieduan', on_delete=models.SET_NULL, null=True)
courses = models.ManyToManyField(Course, blank=True)
class Meta:
db_table = 'tb_jieduan'
def __str__(self):
return "%s-第%s阶段-%s" % (self.path.title, self.serial_num, self.title)

django中的积累的更多相关文章
- 异步任务队列Celery在Django中的使用
		
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
 - Mysql事务探索及其在Django中的实践(二)
		
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
 - Mysql事务探索及其在Django中的实践(一)
		
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
 - Django 中url补充以及模板继承
		
Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...
 - django中css问题
		
django中加载的css,js,图片其中js和图片可以加载出来,而css没有效果.原因如下: 这是因为你安装的某些IDE 或者其他更改了注册表导致的系统的注册表\HKEY_CLASSES_ROOT\ ...
 - 在Django中进行注册用户的邮件确认
		
之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...
 - django中tinymce添加图片上传功能
		
主要参考以下: https://pixabay.com/en/blog/posts/direct-image-uploads-in-tinymce-4-42/ http://blog.csdn.net ...
 - django中migration文件是干啥的
		
昨天很蠢的问leader git push的时候会不会把本地的数据库文件上传上去,意思是django中那些migration文件修改之后会不会上传. 然后得知不会,因为所有的数据库都存在本机的mysq ...
 - Django中Celery的实现介绍(一)
		
Django中Celery的实现 Celery官网http://www.celeryproject.org/ 学习资料:http://docs.jinkan.org/docs/celery/ Cele ...
 
随机推荐
- Gym102012A Rikka with Minimum Spanning Trees
			
题意 \(T\) 组数据,每组数据给定一个 \(n\) 个点,\(m\) 条边,可能含有重边自环的图,求出最小生成树的个数与边权和的乘积,对 \(10^9+7\) 取模. \(\texttt{Data ...
 - 导入tensorflow.出现importError: DLL load failed: 找不到指定的模块。
			
导入tensorflow.出现importError: DLL load failed: 找不到指定的模块. 原因 这是由于windows上没有相应的动态链接库导致的,tensorflow依赖很多c+ ...
 - 白话科普,10s 了解 API
			
作为一名又拍云的技术支持工程师,小拍每天都会接收到很多客户的提问.这其中,有很多客户会问:"小拍,请问云存储上传除了使用控制台的文件管理和 FTP 工具之外,有没有其他的途径进行上传呢?&q ...
 - Java_包装类
			
包装类 在实际应用中, 经常需要把基本数据类型转化为对象以便操作. 因此, Java在设计类时, 为每个基本数据类型设计了一个对应的类进行包装, 这样八个和基本数据类型对应的类统称为包装类(Wrapp ...
 - Vue的生命周期--代码片段
			
Vue 实例有一个完整的生命周期,也就是从开始创建. 初始化数据. 编译模板. 挂载 Dom. 渲染→更新→渲染. 销毁等一系列过程,我们称这是 Vue 的生命周期.通俗说就是 Vue 实例从创建到销 ...
 - C++动态存储方式与静态存储方式
			
如果从变量值存在的时间(即生存期)来分,可将程序中的变量分为:动态存储方式和静态存储方式.它们所占用的存储空间区域不同. C++存储空间区域 代码区:存放可执行程序的程序代码.静态存储区:存放静态变量 ...
 - CSS浮动好文章
			
http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 看完上面这篇文章,我哭了.写的真好,我这块更菜.
 - TCP中RTT的测量和RTO的计算  以及 接收缓存大小的动态调整
			
RTT测量 在发送端有两种RTT的测量方法,但是因为TCP流控制是在接收端进行的,所以接收端也需要 有测量RTT的方法. /* Receiver "autotuning" code ...
 - 如何实现Http请求报头的自动转发[应用篇]
			
如今的应用部署逐渐向微服务化发展,导致一个完整的事务往往会跨越很多的应用或服务,出于分布式链路跟踪的需要,我们往往将从上游服务获得的跟踪请求报头无脑地向下游服务进行转发.本文介绍的这个名为Header ...
 - Android自定控件基础(一)——几何图形绘制
			
虽然本人有几年开发经验,但是自定义控件这一块儿,研究的很少,惭愧--用到的时候就是百度查找,复制粘贴.工时紧,总是想的快点完工就好.(都是借口啦,想学总会有时间哒) 作为一个Android开发 要说自 ...