django 在建模时的一个手贱
最近在写一个网站,在建立model的时候遇到了一些问题,最后找了好久才找到为什么。
一、django的model定义如下:
from django.db import models # Create your models here. class Person(models.Model):
name=models.CharField(max_length=8,primary_key=True) class Student(Person):
studentID=models.ForeignKey(Person)
二、在执行migrate 的时候报如下的错:
python3 manage.py migrate coreapp
SystemCheckError: System check identified some issues: ERRORS:
coreapp.Student.studentID: (fields.E305) Reverse query name for 'Student.studentID' clashes with reverse query name for 'Student.person_ptr'.
HINT: Add or change a related_name argument to the definition for 'Student.studentID' or 'Student.person_ptr'.
三、引起问题的原因:
这个问题的原因在于Student这个类定义的时候有错误,由于我最近几年对mysql数据的接触比较多,知道Person表和Student表
在数据库中是父子表的关系,所以在python代码编写的时候,就自然而然的把Person写在了Student的基类;事实上Student类的
基类应该是models.Model类。
四、正确写法:
from django.db import models # Create your models here. class Person(models.Model):
name=models.CharField(max_length=8,primary_key=True) class Student(models.Model):
studentID=models.ForeignKey(Person)
由于源码不能公布出来,所以这个例子中的类设计就比较“粗糙”了;但是哪理不糙呀!
----
django 在建模时的一个手贱的更多相关文章
- 脑残手贱:被NFS祸害的调度系统
建议:任何时候,都要三思而后行!!! 事请的缘由 系统中采用slurm调度系统来进行并行计算.但是在GPU节点上,无论如何都无法启动slurmd,报插件初始化错误的故障. 因此需要编译新的munge和 ...
- 在进行机器学习建模时,为什么需要验证集(validation set)?
在进行机器学习建模时,为什么需要评估集(validation set)? 笔者最近有一篇文章被拒了,其中有一位审稿人提到论文中的一个问题:”应该在验证集上面调整参数,而不是在测试集“.笔者有些不明白为 ...
- Git操作文件的时候手贱了,怎么恢复?
我们在使用git的过程当中很难避免的一点就是手贱,因为人嘛总有犯错疏忽的时候,有时候一不小心就操作错了.我也经常遇到这种情况,所以这时候对git的了解和掌握就非常重要,即使操作错了,我们也可以通过gi ...
- 手贱的回忆录 --- L版openrc密码修改(OS_PASSWORD)
---恢复内容开始--- 刚刚部署完L版,发现默认登录的管理员账号在41.42.43的openrc文件中,登录名是admin,登录密码却是一串随机码,于是想修改一个简单易记的密码,手贱的把OS_PAS ...
- 将keras模型在django中应用时出现的小问题——ValueError: Tensor Tensor("dense_2/Softmax:0", shape=(?, 8), dtype=float32) is not an element of this graph.
本文原出处(感谢作者提供):https://zhuanlan.zhihu.com/p/27101000 将keras模型在django中应用时出现的小问题 王岳王院长 10 个月前 keras 一个做 ...
- django学习笔记【001】django版本的确定&创建一个django工程
2.3 查看当前的django版本 python3. -m django --version 2.3.1 创建一个django工程 django-admin startproject mysite 在 ...
- django 做 migrate 时 表已存在的处理方法
django 做 migrate 时 表已存在的处理方法 文章来源:嗨学网 http://www.piaodoo.com 在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数 ...
- 在django中如何从零开始搭建一个mock服务
mock概念 mock 就是模拟接口返回的一系列数据,用自定义的数据替换接口实际需要返回的数据,通过自定义的数据来实现对下级接口模块的测试.这里分为两类测试:一类是前端对接口的mock,一类是后端单元 ...
- Visio 2007中进行数据库建模时如何显示字段类型以及概念名称
关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型: 在visio菜单上--->点击数据库--->选项--->文档 打开后选择表这项,在上 ...
随机推荐
- iOS_2_button控制物体形变
终于效果图: BeyondViewController.h // // BeyondViewController.h // 02_button控制物体形变 // // Created by beyon ...
- OleView.exe:查看机器上的COM 组件。
OleView.exe可以查看机器上安装的所有COM组件的类别以及各个类别下的COM组件.
- VS2008+Windows DDK 7的环境配置(二)
在第一篇的基础上,进行如下的步骤,就可以编译出X64的驱动程序. (建议再另外建一个项目,这样避免混淆,因为x86和x64编译的有些编译选项是不同的.) 1. 安装VS2008 x64 build 组 ...
- 设置网站expires和max-age属性
转:http://www.zicheng.net/article/982022.htm 在使用百度站长工具测试网站优化建议时,在 设置静态内容缓存时间 栏目里,会提示 类似 FAILED - (未设置 ...
- js的正则匹配 和 blur
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js&qu ...
- HTML5 PACS 医学成像
http://ivmartel.github.io/dwv/ http://oviyam.raster.in/oviyam2.html https://github.com/ivmartel/dwv ...
- 通过Js对电话和姓名身份证等进行部分隐藏处理
在进行web前端页面开发中,有时需要从后台获取用户数据来显示在前台页面,但是考虑到用户信息安全的问题,就需要对这些信息进行处理,使其不完全显示出来,例如姓名,两个字的显示姓,名字用*代替,电话前三位和 ...
- line-height测量及使用
1.line-height定义 line-height表示行高,即两行文字基线间的距离. 以下是图示说明: 行高是2条红线之间的距离,即:1+2+3+4 在实际测量中,基线不好找,可测量顶线到顶线的距 ...
- iscsi initiator端Note
iscsi initiator端 (1)安装open-scsi sudo apt-get install open-iscsi open-iscsi-utils (2)cha ...
- H5中JavaScript常用代码片段
/** * 批量替换方法,批量过滤特殊字符,通常用在通过后的各种编辑器添加的内容在App上编辑上使用 * james.wang 2016-11-11 * 使用方法:ReCont(Content,[&q ...