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 Server 查询入门
普通查询跟带条件的查询 声明:这里我将用通俗易懂的语言去教大家如何理解 SQL Server里的代码. 实例: 1.查询学生表中所有的信息 select * from Student 下面是我的理解 ...
- 强连通分量再探 By cellur925
我真的好喜欢图论啊. (虽然可能理解的并不深hhh) 上一次(暑假)我们初探了强联通分量,这一次我们再探.(特别感谢pku-lyc老师的课件.有很多引用) 上次我们忘记讨论复杂度了.tarjan老爷爷 ...
- 温习LOGO语言
LOGO是什么? LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过"绘图"的方式来学习编程,对初学者特别是儿童进行寓教于乐的教学方式. LOGO语言创 ...
- ssm框架下实现文件上传
1.由于ssm框架是使用Maven进行管理的,文件上传所需要的jar包利用pom.xml进行添加,如下所示: <properties> <commons-fileupload.v ...
- 利用VS自带的dotfuscator混淆代码的学习
对于一些原创的敏感代码,我们可以通过简单的重命名混淆使得别人难以真正理解执行原理.这一点,使用VS自带的dotfuscator即可实现. 如上图所示,你可以自定义选择哪些类被排除重命名,内置的规则中, ...
- 492 Construct the Rectangle 构建矩形
详见:https://leetcode.com/problems/construct-the-rectangle/description/ C++: class Solution { public: ...
- pyton 基础,运算符及字符类型。
一.python运算符: 二.数据类型: 1.数字: int :整型 32位机器上一个整数取值范围为-2**31~2**31-1即-2147483648~2147483647 64位机器上一个整数取 ...
- JAVA 运用流编程实现简单的"记事本"功能
一.概要 1.功能介绍 2.实现的思路及步骤代码 3.完整代码 二.功能 运用IO流和Swing实现简单的记事本功能(打开.保存.退出) 三.思路及实现步骤 1.在构造函数中画出操作界面 //创建jt ...
- AJPFX关于JAVA多线程实现的三种方式
JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...
- Array(数组)的基本方法
1.定义:var arr=new Array ("12" , "zhang") 2.简写:var arr=[ 12 , "zhang&quo ...