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)

由于源码不能公布出来,所以这个例子中的类设计就比较“粗糙”了;但是哪理不糙呀!

----

时间: 2024-11-03 21:17:16

django 在建模时的一个手贱的相关文章

做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致

最近在做一个手机端页面时,遇到了一个奇怪的问题:字体的显示大小,与在CSS中指定的大小不一致.大家可以查看这个Demo(记得打开Chrome DevTools). 就如上图所示,你可以发现,原本指定的字体大小是24px,但是最终计算出来的却是53px,看到这诡异的结果,我心中暗骂一句:这什么鬼! 随后开始对问题各种排查:某个标签引起的?某个CSS引起的?又或者是某句JS代码引起的.通过一坨坨的删代码,发现貌似都不是.我不禁又骂,到底什么鬼!不过中间还是发现了一些端倪:当页面中的标签数量或者文本数

在进行机器学习建模时,为什么需要验证集(validation set)?

在进行机器学习建模时,为什么需要评估集(validation set)? 笔者最近有一篇文章被拒了,其中有一位审稿人提到论文中的一个问题:”应该在验证集上面调整参数,而不是在测试集“.笔者有些不明白为什么除了训练集.测试集之外,还需要额外划分一个验证集.经过查找资料,在<Deep Learning with Python>这本书上面我发现了比较好的解释,于是将这部分内容摘录在本博文中,并且翻译为中文. 下文摘自<Deep Learning with Python>4.2小节,翻译如

着手一个手游项目的思考

虽然个人阅历有限,但也对端游,页游,手游都有涉及. 目前正值筹备新项目的时候,又面临着技术选型等方面的问题.记录在此,以整理思绪 技术选型 1.前后端的技术选择 前端我觉得要按以下方向来  平台-〉3Dor2D->游戏类型 不同的引擎总是有自己擅长的一面,而强扭的瓜总不可能太甜. 所以,我一向认为,适合的引擎能够更容易做事情. 同时,我也不建议自己撸引擎. 要撸,就自己撸着玩,不要把自己的坑,带到项目中来. 端游,页游就不讨论了,目前很少有公司新开这类型的项目. 我们来说说手游. 对于手游的选择

django学习笔记【001】django版本的确定&amp;创建一个django工程

2.3 查看当前的django版本 python3.5 -m django --version 1.10.4 2.3.1 创建一个django工程 django-admin startproject mysite 在创建工程时的一些注意项: 1.程序中所以的命名力求见名知义,这个工程明也一样 2.注意这个工程不要和python中其它的东西重名:如test,django 这个的命名对于工程来说是不合适的. 所谓的django工程(project)只不过是一个在当前目录下的一个子目录,里面包涵了若干

手贱的回忆录 --- L版openrc密码修改(OS_PASSWORD)

---恢复内容开始--- 刚刚部署完L版,发现默认登录的管理员账号在41.42.43的openrc文件中,登录名是admin,登录密码却是一串随机码,于是想修改一个简单易记的密码,手贱的把OS_PASSWORD修改为了Abcd1234,三个API节点都这么搞了一下,然后就杯具了,从此无法登录页面,且没有admin权限做任何补救操作,后经成坤操作,问题被瞬秒,以下为操作过程,供参考: 登录到41节点,打开openrc文件,注销掉Rescue model之上的所有内容,仅留下以下内容: export

一个手机壳背后的版权战争

手机背壳,看似微利,其实已经在版权战的视野中.这或许是在手机本体上没有颠覆式创新的大背景下,最绝妙的讽刺. 文/张书乐 刊载于<法人>杂志2015年10月刊 一直很有情怀.喜欢说相声的罗永浩,在9月面对版权问题服了一次软.在前不久的,锤子坚果手机发布会上,老罗说为坚果手机推出限量版后壳,这一系列中就包含经典形象马里奥.而在9月6日,罗永浩个人公众账号发文宣布,取消坚果手机定制的限量版"超级马里奥"后壳. 理由很简单,马里奥形象的版权方任天堂表态称:是不会在"中国&

VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误

今天在用 VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误,如下所示 混合模式程序集是针对"v2.0.50727"版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集 网上搜索得到解决办法: 在app.config中添加一个配置节:startup <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime

Word 2003安装时的一个小问题

Word2003安装时的一个小问题 今天给一个老师安装软件,出现了这个问题? 系统管理员设置了系统策略,禁止进行此安装. 解决方法 开始-运行-regedit 在注册表项里找到下面这个选项: HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C 将这项删除.再进行安装就可以了.

webstorm 不知道手贱点了什么,有时候会自动删除分号

https://segmentfault.com/q/1010000009184137?_ea=1845711 webstorm 不知道手贱点了什么,有时候会自动删除分号 webstorm javascript 繁忙的耗子 4月25日提问 关注 4 关注 收藏 0 收藏,470 浏览 问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 怎么恢复过来? 4月25日提问 评论 邀请回答 编辑 默认排序时间排序 3个回答 答案对人有帮助,有参考价值0答案没帮助,是错