添加operations模块
添加operations模块,models内容为:
from django.db import models
from datetime import datetime
from users.models import UserProfile
from courses.models import Course
# Create your models here.
class UserAsk(models.Model):
name = models.CharField(max_length=100, verbose_name='咨询者姓名')
mobile = models.CharField(max_length=11, verbose_name='手机')
course_name = models.CharField(max_length=50, verbose_name='课程名次')
add_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
class Meta:
verbose_name = '用户咨询'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class CourseComment(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, verbose_name='用户')
name = models.CharField(max_length=100, verbose_name='评论名')
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name='课程')
comments = models.CharField(max_length=200, verbose_name='评论')
add_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
class Meta:
verbose_name = '课程评论'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class UserFavorite(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, verbose_name='收藏用户')
name = models.CharField(max_length=100, verbose_name='收藏名')
fav_id = models.IntegerField(default=0, verbose_name='数据ID')
fav_type = models.IntegerField(default=1, choices=((1, '课程'), (2, '机构'), (3, '教师')), verbose_name='收藏类型')
add_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
class Meta:
verbose_name = '用户收藏'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class UserMessage(models.Model):
# user发送的消息,有发送给单个用户,也有发给全体或多个用户
# 本例中 0 是全体接收消息用户,非0则是指定的消息接收用户id
user = models.IntegerField(default=0, verbose_name='接受消息用户id')
name = models.CharField(max_length=100, verbose_name='消息名')
message = models.CharField(max_length=500, verbose_name='消息内容')
has_read = models.BooleanField(default=False, verbose_name='是否已读')
add_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
class Meta:
verbose_name = '用户消息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class UserCourse(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, verbose_name='用户')
name = models.CharField(max_length=100, verbose_name='用户课程名')
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name='课程')
add_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
class Meta:
verbose_name = '用户课程'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
创建好各个模块后,需要在settings中添加注册相应的模块,这样才可以进行数据的迁移。比laravel等的数据迁移代码量少很多啊。

添加operations模块的更多相关文章
- nginx添加 nginx_heath模块
原因?为什么会使用nginx_heath 这个模块,主要是如nginx+tomcat部署的时,tomcat挂了之后nginx->upstream 轮询是可以踢掉挂掉的tomcat服务的,如果部署 ...
- nginx 添加nginx-http-concat模块
github地址:https://github.com/alibaba/nginx-http-concat/tree/master 简单的描述一下吧,网上说的安装新的模块需要重新编译nginx,具体的 ...
- 嵌入式linux驱动开发之给linux系统添加温度传感器模块
忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而 ...
- 动态编译添加php模块
注意:转载请注明出处:http://www.programfish.com/blog/?p=85 在很多时候我们用linux里搭建web服务器的时候会需要编译安装php套件,而在编译安装后可能又会需要 ...
- httpd添加新模块
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- yum安装的Nginx添加第三方模块支持tcp
需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...
- nginx 番外----添加第三方模块
#第三方模块需要先进行下载,然后再编译时指定文件目录 1.查看当前编译模块 root@nginx sbin]# ./nginx -V #查看当前添加模块 nginx version: nginx/ b ...
- yum安装下的nginx,如何添加模块,和添加第三方模块
需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...
- 编译nginx平滑添加stream模块
1.操作背景 操作系统版本:CentOS Linux release (Core) nginx版本:1.13.4 nginx从1.9.0版本开始,新增了ngx_stream_core_module模块 ...
随机推荐
- 如何打开windows的远程桌面
WINDOWS 2003/XP 系列设置方法 右键点击[我的电脑]选择[属性],进入[系统属性]界面,点击[远程]选项卡,勾选[启用这台计算机上的远程桌面]即可. 2003/XP系统默认只允许计算机a ...
- Windows窗体应用程序常用的几个类的属性、方法以及事件
System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...
- Typora 配置说明
目录 Typora 配置说明 贴图功能 自定义快捷键 快捷键使用 Linux下安装typora Typora 配置说明 为了更好的使用markdown,解决markdown中不如Word的不便之处,对 ...
- RabbitMQ入门(5)——主题(Topic)
前面我们介绍了通过使用direct exchage,改善了fanout exchange只能进行虚拟广播的方式.尽管如此,直接交换也有自身的局限,它不能基于多个条件路由. 在我们的日志系统中,也许我们 ...
- nagios监控3306端口
1.修改 /usr/local/nagios/etc/objects/commands.cfg 添加一个服务名 # check port define command{ command_name c ...
- hiho 1318 非法二进制数 dp
#1318 : 非法二进制数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 如果一个二进制数包含连续的两个1,我们就称这个二进制数是非法的. 小Hi想知道在所有 n 位 ...
- js 弹出层,以及在javascript里定义层样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用MessageFormat替换字符中的占位符
使用String.format可以实现字符串的格式化功能,即将后面参数中的值替换掉format中的%s,%d这些值.但MessageFormat更为强大,不用管传入值是字符串还是数字,使用占位符即可. ...
- 微信小程序:scroll-view的bug
flex:1并不能使scroll-view的高度固定,需要添加高度height:1rpx(数值大于0)就行
- 堆 Heap
2018-03-01 20:38:34 堆(Heap)是可以用来实现优先的队列的数据结构,而不是堆栈. 若采用数组或者链表实现优先队列 若采用树的结构 如果采用二叉搜索树,那么每次删除,比如删除最大值 ...