话不多说,来看表结构

这里有两个表,一个是阶段表,一个是老师表,一个老师可以带多个阶段,一个阶段也可以由多个老师带,所以是多对多关系

# 阶段表
class Stage(models.Model):
name=models.CharField(
max_length=20,
verbose_name='阶段名称'
)
def __str__(self):
return self.name
class Meta:
verbose_name_plural='阶段'
# 教师表
class Teacher(models.Model):
name=models.CharField(
max_length=20,
verbose_name='教师姓名'
)
stages = models.ManyToManyField( #多对多结构
Stage,
through='Teachstage', #指定第三方表名
# through_fields=('teacher','stage'), #第三方表中必填字段
)
def __str__(self):
return self.name
class Meta:
verbose_name_plural='教师‘
# 第三张表
class Teachstage(models.Model):
teacher=models.ForeignKey(
Teacher,
on_delete=models.CASCADE,
)
stage=models.ForeignKey(
Stage,
on_delete=models.CASCADE
)
level=models.IntegerField( # 在多对多的基础上对每一个关系增添一个字段
verbose_name='阶段代课频数',
default=0,
)

到此,多对多表结构已经创建成功,接下来,我们看看如何让将第三张表内嵌到我们的后台模板中,这里选择的是将第三张表内嵌到Teacher表中,代码如下:

# 在admin.py中
from django.contrib import admin
from teacher.models import Teacher,Teachstage class TeachstageInline(admin.TabularInline):
model = Teachstage @admin.register(Teacher)
class TeacherAdmin(admin.ModelAdmin):
inlines = [
TeachstageInline
]

显如下:

到此结束!

最新文章

  1. Effeckt.css – CSS3 Transitions & Animations 精妙应用
  2. 鸟哥的Linux私房菜第零章
  3. 作业三--Linux内核分析
  4. 'vt100': unknown terminal type.
  5. hdoj 1234 开门人和关门人
  6. iOS ipv6
  7. COCI 2015/2016 Day 8 PROKLETNIK
  8. ABAP常用字符串处理
  9. python cookbook第三版学习笔记十三:类和对象(三)描述器
  10. python 集合的操作
  11. UVA - 12050-Palindrome Numbers
  12. Grafana简单使用
  13. AT与ATX电源 - 1 系统状态
  14. rest_framework之认证源码剖析
  15. VS插件File Nesting
  16. Dev_GridView:设置列为Button
  17. 【学习笔记】--- 老男孩学Python,day5 列表 元祖
  18. react native 示例代码
  19. 关于 appium get_attribute --获取对应属性值 API说明
  20. 开始一个Android的appium实例

热门文章

  1. MySQL在Linux系统环境的安装和无主机登录配置
  2. Spring 梳理 - AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
  3. Spring boot 官网学习笔记 - 开发第一个Spring boot web应用程序(使用mvn执行、使用jar执行)
  4. springboot集成Spring Data JPA数据查询
  5. centos7 远程连接其他服务器mysql
  6. windows下python和pycharm安装及其使用
  7. Nebula Graph 技术总监陈恒:图数据库怎么和深度学习框架进行结合?
  8. 排坑日记之批量从库IO进程停止
  9. 杂谈:开发人员如何进行复杂业务的学习?让boss刮目相看
  10. TCP/IP协议介绍