Django 多个字段关联同一外键
# -*- coding: utf-8 -*-
"""
Tencent is pleased to support the open source community by making 蓝鲸智云(BlueKing) available.
Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
""" from django.db import models class ops(models.Model):
name = models.CharField(max_length=30) class shift(models.Model):
shift_class = models.CharField(max_length=30) class ops_shift(models.Model):
"""
多个字段对应同一个外键的情况下会报错 原因是指向同一模型的三个外键反向关联名称产生了冲突,shift模型对Day1字段的反向关联名称为ops_shift_set(),
对Day2的反向关联名称也是ops_shift_set(),对Day3的反向关联名称还是ops_shift_set()。 解决方法:给models.ForeignKey()加入related_name参数,定义不同的关联名称。 db_column属性是用来定义在数据库中此字段的名称
"""
ops_name = models.ForeignKey(ops,db_column='ops_name') Day1 = models.ForeignKey(shift,related_name='ops_shift_Day1',default='',db_column='Day1')
Day2 = models.ForeignKey(shift,related_name='ops_shift_Day2',default='',db_column='Day2')
Day3 = models.ForeignKey(shift,related_name='ops_shift_Day3',default='',db_column='Day3')
Day4 = models.ForeignKey(shift,related_name='ops_shift_Day4',default='',db_column='Day4')
Day5 = models.ForeignKey(shift,related_name='ops_shift_Day5',default='',db_column='Day5')
Day6 = models.ForeignKey(shift,related_name='ops_shift_Day6',default='',db_column='Day6')
Day7 = models.ForeignKey(shift,related_name='ops_shift_Day7',default='',db_column='Day7')
Day8 = models.ForeignKey(shift,related_name='ops_shift_Day8',default='',db_column='Day8')
Day9 = models.ForeignKey(shift,related_name='ops_shift_Day9',default='',db_column='Day9')
Day10 = models.ForeignKey(shift,related_name='ops_shift_Day10',default='',db_column='Day10')
Day11 = models.ForeignKey(shift,related_name='ops_shift_Day11',default='',db_column='Day11')
Day12 = models.ForeignKey(shift,related_name='ops_shift_Day12',default='',db_column='Day12')
Day13 = models.ForeignKey(shift,related_name='ops_shift_Day13',default='',db_column='Day13')
Day14 = models.ForeignKey(shift,related_name='ops_shift_Day14',default='',db_column='Day14')
Day15 = models.ForeignKey(shift,related_name='ops_shift_Day15',default='',db_column='Day15')
Day16 = models.ForeignKey(shift,related_name='ops_shift_Day16',default='',db_column='Day16')
Day17 = models.ForeignKey(shift,related_name='ops_shift_Day17',default='',db_column='Day17')
Day18 = models.ForeignKey(shift,related_name='ops_shift_Day18',default='',db_column='Day18')
Day19 = models.ForeignKey(shift,related_name='ops_shift_Day19',default='',db_column='Day19')
Day20 = models.ForeignKey(shift,related_name='ops_shift_Day20',default='',db_column='Day20')
Day21 = models.ForeignKey(shift,related_name='ops_shift_Day21',default='',db_column='Day21')
Day22 = models.ForeignKey(shift,related_name='ops_shift_Day22',default='',db_column='Day22')
Day23 = models.ForeignKey(shift,related_name='ops_shift_Day23',default='',db_column='Day23')
Day24 = models.ForeignKey(shift,related_name='ops_shift_Day24',default='',db_column='Day24')
Day25 = models.ForeignKey(shift,related_name='ops_shift_Day25',default='',db_column='Day25')
Day26 = models.ForeignKey(shift,related_name='ops_shift_Day26',default='',db_column='Day26')
Day27 = models.ForeignKey(shift,related_name='ops_shift_Day27',default='',db_column='Day27')
Day28 = models.ForeignKey(shift,related_name='ops_shift_Day28',default='',db_column='Day28')
Day29 = models.ForeignKey(shift,related_name='ops_shift_Day29',default='',db_column='Day29')
Day30 = models.ForeignKey(shift,related_name='ops_shift_Day30',default='',db_column='Day30')
Day31 = models.ForeignKey(shift,related_name='ops_shift_Day31',default='',db_column='Day31') class Meta:
"""
在Django的后台可以显示此处定义的中文名称
"""
verbose_name=u'排班表'
verbose_name_plural = u"排班表"
Django 多个字段关联同一外键的更多相关文章
- Django QuerySet 方法梳理 。model外键 多对多的保存
引用:https://feifeiyum.github.io/2017/03/28/python-django-queryset/ 说明 Models 层是 Django 框架中最强大的部分之一, 大 ...
- Django图书管理系统(前端对有外键的数据表增删改查)
图书管理 书籍管理 book name 项目源码位置:https://gitee.com/machangwei-8/learning_materials/tree/master/%E9%A1%B9%E ...
- mysql数据库:分表、多表关联、外键约束、级联操作
一.分表.外键.级联.多对一 二.多对多 三.一对一 一.分表.外键.级联.多对一 将部门数据与员工数据放到同一张表中会造成 数据重复 结构混乱 扩展维护性差 需要分表 create table de ...
- 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13 在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...
- 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...
- 2-16 MySQL字段约束-索引-外键
一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...
- mysql字段约束-索引-外键---3
本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table wo ...
- Python3-sqlalchemy-orm 创建多表关联表带外键
#-*-coding:utf-8-*- #__author__ = "logan.xu" import sqlalchemy from sqlalchemy import crea ...
- Hibernate一对一双向关联(外键)
网站上各种搜索,都是一些清晰或者不清晰的例子,但是用下来一是确实不给力,二是完全不知道所以然. 后来终于在书中查到了就在这里记一下. 首先要说明,这里只解释双向一对一只有一个表里面有外键的情况. 就以 ...
随机推荐
- SQL_MODE 的设置
查看当前的 SQL_MODE SELECT @@sql_mode SELECT @@sql_mode 的执行结果 mysql> SELECT @@sql_mode; +------------- ...
- spring AOP excution表达式各符号意思
execution(*com.sample.service.impl..*.*(..)) 符号 含义 execution() 表达式的主题 第一个“*”符号 表示返回值的类型任意: com.sampl ...
- LightOj 1088 - Points in Segments (二分枚举)
题目链接: http://www.lightoj.com/volume_showproblem.php?problem=1088 题目描述: 给出一个n位数升序排列的数列,然后q个查询,每个查询问指定 ...
- ios微信浏览器click事件不起作用的解决方法
$(document).on( "click", ".weui_cell", function (event) {alert(); }); JS代码是这样的,h ...
- 【C#】将数据库读出的数据转换为DataTable类型集合
return View(ConverDataReaderToDataTable(reader)); // 静态方法public static DataTable ConverDataReaderToD ...
- empty 和 isset的区别和联系
empty 和 isset的区别和联系 要说它们的联系,其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们 ...
- 外文翻译 《How we decide》多巴胺的预言 第三节
这是第二章的最后一节. 书的导言 本章第一节 本章第二节 本节阅读感言:自我批评是自我提升的妙方. 多巴胺是我们感情的源泉.多巴胺相关的神经系统在不断的记录着我们主观意识没有注意到的一个个模式,将它们 ...
- 计数器:counter
组成:2属性,1方法 属性1: counter-reset 命名 属性2: counter-increment 启动/自增 方法 : counter()/counters() 调用方法 1.计数器 命 ...
- HTTP 200 OK和HTTP 304 Not modified的由来
这两个字段都和HTTP协议的缓存控制相关. 浏览器缓存机制是通过HTTP协议Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段来实现. 这 ...
- Python3简明教程(五)—— 流程控制之循环
有些时候我们需要多次执行相同的任务,我们使用一个计数器来检查代码需要执行的次数.这个技术被称为循环. while循环 while语句的语法如下: while condition: statement1 ...