用户表

UserMesasage   用户消息
UserFavorite 用户收藏
UserAsk 用户咨询
UserCourse 用户学习的课程
CourseComments 用户评论

收藏有3种类型

代码

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=20, 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 class CourseComments(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, 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 class UserFavorite(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, verbose_name="用户")
# teacher = 可以用外键
# org =
# fav_type =
fav_id = models.IntegerField(default=0, verbose_name="数据id")
fav_type = models.IntegerField(choices=((1, "课程"), (2, "课程结构"), (3, "讲师"),), default=1, verbose_name="收藏类型")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间") class Meta:
verbose_name = "用户收藏"
verbose_name_plural = verbose_name class UserMessage(models.Model):
# 0表示发给所有用户, user = 非0, 发给某个用户的
user = models.IntegerField(default=0, 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 class UserCourse(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, verbose_name="用户")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间") class Meta:
verbose_name = "用户课程"
verbose_name_plural = verbose_name

我把他在思路上排了下前后

# 用户消息-用户收藏-咨询-学习的课程-评论

from users.models import UserProfile
from courses.models import Course class UserMessage(models.Model):
# 0表示发给所有用户, user = 非0, 发给某个用户的
user = models.IntegerField(default=0, 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 class UserFavorite(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, verbose_name="用户")
# teacher = 可以用外键
# org =
# fav_type =
fav_id = models.IntegerField(default=0, verbose_name="数据id")
fav_type = models.IntegerField(choices=((1, "课程"), (2, "课程结构"), (3, "讲师"),), default=1, verbose_name="收藏类型")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间") class Meta:
verbose_name = "用户收藏"
verbose_name_plural = verbose_name class UserAsk(models.Model):
name = models.CharField(max_length=20, 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 class UserCourse(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, verbose_name="用户")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间") class Meta:
verbose_name = "用户课程"
verbose_name_plural = verbose_name class CourseComments(models.Model):
user = models.ForeignKey(UserProfile, verbose_name="用户")
course = models.ForeignKey(Course, 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

至此小结

project
app
settings设置
zh-hans
tz
数据库不转 app创建
模型 1.user
userprofile
image
nick_name
gender
brith
mobile
address banner
name
url
index
add_time
email
code
email
send_type
send_time 模型的
字段名显示
class Meta: 表名显示
class __str__: 给展示的字段
app名字显示 用户注册使用自定义表
settings设置 courses
课程-章节-视频
-课程资源附件
organization
城市-课程机构-教师 类比:app名-表名-字段名字 operation operation(导入关系)
| |
UserProfile course organization
(按序)消息
收藏
咨询
学习
评论 用户消息(应该是谁发来的)
用户(外)(id=0和非0表示发给all,或某人)
消息
has_read
时间
收藏
用户(外)
课程(外)
fav_id(1,2,3)
fav_type(1:课程 2:培训机构 3:教师)
时间 咨询(可未登录)
用户name
手机
课程(外)
时间
学习课程
用户(外)
课程(外)
时间
评论
用户(外)
课程(外)
评论内容
时间

[py][mx]operation模型设计的更多相关文章

  1. [py][mx]django城市-教学机构-教师模型设计

    分析下城市-教学机构-教师模型设计 CourseOrg 课程信息 Teacher 教师信息 CityDict 城市信息 代码 from datetime import datetime from dj ...

  2. [py][mx]django项目-让系统用自定义的users表认证

    项目开端 参考的是mxonline项目 先把这两项完成 1.app设计 2.app的models的设计 经过分析系统有四个模块 users - 用户管理 course - 课程管理 oranizati ...

  3. [py][mx]xadmin详细设置-将app注册到xadmin

    首先createsuperuser,创建用户, 然后登陆xadmin. 理解下models的各个字段 复数形式及返回 注册app users/adminx.py 显示字段 users/adminx.p ...

  4. [py][mx]django xadmin后台配置

    xadmin配置 - 安装 pip install -r https://github.com/sshwsfc/xadmin/blob/django2/requirements.txt 以下被我测试通 ...

  5. [py][mx]django处理登录逻辑

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  6. [py][mx]django的cookie和session操作-7天免登录

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  7. [py][mx]django自定义认证类-实现邮箱作为用户名登录

    创建自定义验证用户名密码类CustomBackend users/views.py from django.contrib.auth import authenticate, login from d ...

  8. [py][mx]django分页第三方模块django-pure-pagination

    前台的这些数据都是从后台取来的 分页模块django-pure-pagination - 一款基于django pagination封装的更好用的分页模块 https://github.com/jam ...

  9. [py][mx]django课程页显示city和机构封面图

    city和课程机构信息展示到前台去 organization/views.py from django.views.generic.base import View from organization ...

随机推荐

  1. Linux设备驱动剖析之SPI(一)

    写在前面 初次接触SPI是因为几年前玩单片机的时候,由于普通的51单片机没有SPI控制器,所以只好用IO口去模拟.最近一次接触SPI是大三时参加的校内选拔赛,当时需要用2440去控制nrf24L01, ...

  2. GCC编译命令常用选项

    GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序 ...

  3. java(1) 编程基础

    1.classpath 环境变量 * 当java虚拟机需要运行一个类时,会在classpath 环境变量中所定义的路径下寻找所需的class文件 2.java 的基本语法 * java 语言是严格区分 ...

  4. [工具]Sublime 显示韩文

  5. Unity3D NGUI 二 NGUI Button怎样接受用户点击并调用函数,具体方法名称是什么

    a.直接监听事件 把下面脚本直接绑定在按钮上,当按钮点击时就可以监听到,这种方法不太好很不灵活. void OnClick(){ Debug.Log("Button is Click!!!& ...

  6. html处理富文本内容,避免XSS工具类

    import org.apache.commons.lang3.StringEscapeUtils;import org.jsoup.Jsoup;import org.jsoup.safety.Whi ...

  7. Twig---和vue或angular前端框架并存

    <h1> {% verbatim %} {{message}} {% endverbatim %} </h1> 上面这种方式虽然能够解决,前台渲染的问题,但是还是会报错: 第二 ...

  8. NBUTOJ 1643 - 阶乘除法 - [数学题]

    题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1643 问题描述 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*... ...

  9. 江南大学第三届程序设计竞赛K题 - Cun Tou Gaming - [贪心+堆]

    描述 CTG(Cun Tou Gaming) 是我校的一支 LOL 战队,他们参加比赛总是可以拿到冠军,因为每次都只有他们一支队伍参赛,所以只需要去签个到就可以直接夺冠并领取奖金.现在有  n 场比赛 ...

  10. Springboot中静态资源和拦截器处理(踩了坑)

    背景: 在项目中我使用了自定义的Filter 这时候过滤了很多路径,当然对静态资源我是直接放过去的,但是,还是出现了静态资源没办法访问到springboot默认的文件夹中得文件 说下默认映射的文件夹有 ...