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一对一双向关联(外键)
网站上各种搜索,都是一些清晰或者不清晰的例子,但是用下来一是确实不给力,二是完全不知道所以然. 后来终于在书中查到了就在这里记一下. 首先要说明,这里只解释双向一对一只有一个表里面有外键的情况. 就以 ...
随机推荐
- Luogu P1265修复公路【Prim最小生成树】By cellur925
题目传送门 政府审批的规则如下: (1)如果两个或以上城市申请修建同一条公路,则让它们共同修建: (2)如果三个或以上的城市申请修建的公路成环.如下图,A申请修建公路AB,B申请修建公路BC,C申请修 ...
- HDOJ 5475 An easy problem
题目传送门 题意:一个计算器,两种操作,乘上x,或者除掉之前的某个x,结果取模输出 分析:因为取模不支持除法,然后比赛时想到用逆元,结果发现MOD需要与b互质,结果一直苦苦寻找求逆元的其它方法.后来队 ...
- queue POJ 2259 Team Queue
题目传送门 题意:先给出一些小组成员,然后开始排队.若前面的人中有相同小组的人的话,直接插队排在同小组的最后一个,否则只能排在最后面.现在有排队和出队的操作. 分析:这题关键是将队列按照组数分组,用另 ...
- MessageDigest简介(与MD5加密有关)
参考文章:http://blog.sina.com.cn/s/blog_4f36423201000c1e.html 参考来源:http://blog.csdn.net/hudashi/article/ ...
- Python+selenium定位不到元素的问题及解决方案
在操作过程中主要遇到两种阻塞的问题,总结如下: 1.页面中有iframe,定位元素时,需要用switch_to.frame()转换到元素所在的frame上再去定位 2.遇到一种新情况,有些按钮在htm ...
- Mysql读写分离操作之mysql-proxy
常见的读写方式 基于程序代码内部实现 在代码中根据select.insert进行选择分类:这类方法也是生产常用的,效率最高,但是对开发人员比较麻烦.架构不能灵活调整 基于中间件的读写分离: mysql ...
- RHEL 6.5 ----Postfix邮件服务器
主机名 IP 服务 master 192.168.30.130 slave 192.168.30.131 软件包介绍 包名 介绍 postfix-2.6.6-2.2.el6_1.x86 ...
- JAVA字符串转日期或日期转字符串【转】
JAVA字符串转日期或日期转字符串[转] 文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进 来! 用法: S ...
- vue在使用ajax获取数据时,两种方法(jquery和vue_resource)
@{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport ...
- 享元模式及php实现
享元模式: 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用.系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用.由于享元模式要求 ...