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一对一双向关联(外键)
网站上各种搜索,都是一些清晰或者不清晰的例子,但是用下来一是确实不给力,二是完全不知道所以然. 后来终于在书中查到了就在这里记一下. 首先要说明,这里只解释双向一对一只有一个表里面有外键的情况. 就以 ...
随机推荐
- SpringBoot的配置文件加载顺序以及如何获取jar包里的资源路径
一.读取配置文件的四种方式 这四种配置文件放置方式的读取优先级依次递减,具体可以查看官方文档. 1.1jar包同级目录下的config文件夹里的配置文件 其实我以前就见过这种方式了,只是不知道怎么做的 ...
- java sevlet Session
* 如果浏览器支持Cookie,创建Session的时候会把SessionId保存在Cookie中 * 否则必须自己编程使用URL重写的方式实现Session:response.encodeURL()
- IDEA中创建HBASE工程
IntelliJ IDEA+maven的HBase开发环境搭建 hbase 配置(hbase-site.xml)和基本使用 16010端口可以查看Hbase web信息
- css新奇技术及其未来发展
1.图像替换技术: 图像替换技术是指使用图像替换页面中文本的功能,类似与在页面中插入图像,只是这种方法更为方便,易于代码管理.通常来说,设计者习惯使用有意义的图像去替换一些标题,logo和某些特定的页 ...
- 搭建一个高可用的redis环境
一.环境准备 我的环境: Fedora 25 server 64位版 6台: 192.168.10.204 192.168.10.205 192.168.10.206 192.168.10.203 ...
- String的用法——构造方法
package cn.itcast_01; /* 字符串:就是多个字符组成的一串数据,也可以看成一个字符数组 *通过API,我们得知: A: 字符串字面值,如abc,也可以看做一个对象 B:字符串是常 ...
- AJPFX关于java中可访问控制符和非访问控制符的详细总结
1.类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1 )公共类修饰符 pub ...
- Mysql多表联合更新、删除
UPDATE snyts_user u INNER JOIN snyts_order o ON u.user_id = o.user_id INNER JOIN snyts_refund_order ...
- hihocoder offer收割编程练习赛8 A 小Ho的强迫症
思路: 乱搞. 实现: #include <iostream> #include <cstdio> using namespace std; typedef long long ...
- sass 常用用法笔记
最近公司开发的h5项目,需要用到sass,所以领导推荐让我去阮一峰大神的SASS用法指南博客学习,为方便以后自己使用,所以在此记录. 一.代码的重用 1.继承:SASS允许一个选择器,继承另一个选择器 ...