django orm 多对多自定义第三张表
# -*- coding: utf-8 -*-
# Generated by Django 1.11.11 on 2018-09-02 08:07
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('fault_reporting', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Comment',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('content', models.CharField(max_length=255)),
('create_time', models.DateTimeField(auto_now_add=True)),
],
options={
'verbose_name': '评论',
'verbose_name_plural': '评论',
},
),
migrations.CreateModel(
name='Fault2Tag',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
options={
'verbose_name': '故障-标签',
'verbose_name_plural': '故障-标签',
},
),
migrations.CreateModel(
name='FaultDetail',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('content', models.TextField()),
],
options={
'verbose_name': '故障详情表',
'verbose_name_plural': '故障详情表',
},
),
migrations.CreateModel(
name='FaultReport',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=80, verbose_name='故障标题')),
('desc', models.CharField(max_length=255, verbose_name='故障简介')),
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='发布时间')),
('modify_time', models.DateTimeField(auto_now=True, verbose_name='最后修改时间')),
],
options={
'verbose_name': '故障总结/故障报告',
'verbose_name_plural': '故障总结/故障报告',
},
),
migrations.CreateModel(
name='LOB',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=32, unique=True, verbose_name='业务线名称')),
],
options={
'verbose_name': '业务线',
'verbose_name_plural': '业务线',
},
),
migrations.CreateModel(
name='Tag',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=32, unique=True, verbose_name='标签名称')),
],
options={
'verbose_name': '标签',
'verbose_name_plural': '标签',
},
),
migrations.CreateModel(
name='UpDown',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('is_up', models.BooleanField(default=True, verbose_name='支持/反对')),
('fault_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.FaultReport', verbose_name='故障总结')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户')),
],
options={
'verbose_name': '支持/反对',
'verbose_name_plural': '支持/反对',
},
),
migrations.AddField(
model_name='faultreport',
name='lob',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.LOB', verbose_name='所属业务线'),
),
migrations.AddField(
model_name='faultreport',
name='tags',
field=models.ManyToManyField(through='fault_reporting.Fault2Tag', to='fault_reporting.Tag'),
),
migrations.AddField(
model_name='faultreport',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='发布者'),
),
migrations.AddField(
model_name='faultdetail',
name='fault',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.FaultReport'),
),
migrations.AddField(
model_name='fault2tag',
name='fault_report',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.FaultReport'),
),
migrations.AddField(
model_name='fault2tag',
name='tag',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.Tag'),
),
migrations.AddField(
model_name='comment',
name='fault_report',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.FaultReport', verbose_name='故障总结'),
),
migrations.AddField(
model_name='comment',
name='parent_comment',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='fault_reporting.Comment'),
),
migrations.AddField(
model_name='comment',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterUniqueTogether(
name='updown',
unique_together=set([('fault_report', 'user')]),
),
migrations.AlterUniqueTogether(
name='fault2tag',
unique_together=set([('fault_report', 'tag')]),
),
]
django orm 多对多自定义第三张表的更多相关文章
- $Django 多对多-自定义第三张表 基于双下划线的跨表查询(补充)
自定义第三张表的好处:可以定义多个字段, 缺点:查询不方便(有方法解决) 1.第三张表设置外键,联合唯一(查询不方便) class Books(models.Model): name=models.C ...
- django 多对多自定义第三张表时的注意事项
杂交(自定义第三张表+ManyToManyField) # modles.py class Boy(models.Model): name = models.CharField(max_length= ...
- Django框架(十一)-- 补充:inclusion_tag、defer、only、choice、事务、创建多对多的第三张表、mvc和mtv模式
一.inclusion_tag 1.作用 用于生成HTML片段,是数据由参数传入而变成动态 2.使用 # 1.app下新建一个模块,templatetags # 2.创建一个py文件(mytag.py ...
- Django框架(十二)—— 补充:inclusion_tag、defer、only、choice、事务、创建多对多的第三张表
目录 补充:inclusion_tag.defer.only.choice.事务.创建多对多的第三张表 一.inclusion_tag 1.作用 2.使用 二.defer与only 1.定义 2.使用 ...
- Django之modles 多对多创建第三张表
一.第一种:纯自动创建第三张表 纯自动 class Book(models.Model): title = models.CharField(max_length=32) price = models ...
- django orm 基于双下划线的跨表查询
一..基于双下划线的跨表查询(join实现) key:正向查询按字段,反向查询按表明小写 1.一对多跨表查询 查询在跨表中可以有两种方式,正向查询就是关键字段在你要搜索的表,没有关键字段就是反向查询 ...
- Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)
1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...
- Python - Django - ORM 多对多表结构的三种方式
多对多的三种方式: ORM 自动创建第三张表 自己创建第三张表, 利用外键分别关联作者和书,关联查询比较麻烦,因为没办法使用 ORM 提供的便利方法 自己创建第三张表,使用 ORM 的 ManyToM ...
- Django之多对多表之through第三张表之InlineModelAdmin后台内嵌
话不多说,来看表结构 这里有两个表,一个是阶段表,一个是老师表,一个老师可以带多个阶段,一个阶段也可以由多个老师带,所以是多对多关系 # 阶段表 class Stage(models.Model): ...
随机推荐
- zookeeper客户端使用原生JavaApi操作节点
1.引入依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zook ...
- Vue-Router路由Vue-CLI脚手架和模块化开发 之 路由的动态跳转
在上一篇的博文中,实现的跳转是在页面中进行实现的 利用vue-router实例方法,使用js对路由进行动态跳转: 1.router.push:参数为路由对象,跳转到指定路由,跳转后会产生历史记录: & ...
- C语言中的副作用、序列点、完整表达式
C语言中有个术语叫:副作用 副作用其实是对数据对象或文件的修改.(数据对象的定义是:用于存储值的数据存储区域) 例如语句 states = 50; 从C语言的角度来讲:这个赋值表达式的副作用是将变量的 ...
- WebServcies 调用方法异常:System.Web.HttpRequestValidationException: 从客户端中检测到有潜在危险的 Request.Form 值。
我在做WebServcies时,页面调试,报类了下面这样的错误信息: System.Web.HttpRequestValidationException: 从客户端(checkXML="&l ...
- IOS开发-基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建
导引 iOS自动化测试一直使用的appium,iOS系统升级至10.0 Xcode8.0之后,改用WebDriverAgent代理服务作为server,编写了一套基于WebDriverAgent服务 ...
- 问题:modbus_tk开发中遇到[Errno 98] Address already in use (已解决)
案例: from modbus_tk import modbus_tcp,defines import time s = modbus_tcp.TcpServer(port=5300) def mai ...
- python : No such file or directory
windows上写的python脚本,在linux上执行时报: No such file or directory 解决方法一# sed -i 's#\r##' mysqlchk.py 解决方法二脚本 ...
- 关于let 和 var 的作用域问题
直接来一个经典案例: // 1. 下面的结果是什么? 为什么? for (var i=0;i<5;i++){ setTimeout(function () { console.log(i) }, ...
- Access restriction: The type Base64 is not accessible due to restriction on
java build path>把libraries中的JRE System Library删除重新导入.
- 可输入的 Combox(DropDownList)
aspx页面中需要可以输入的combox,在网上找了一个js的插件,效果图如下: