Django model 反向引用中的related_name
转自:https://blog.csdn.net/lanyang123456/article/details/68962515
问题:
定义表Apple:
class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = models.ForeignKey(AppleLevel)
出现如下问题:
monitor.apple: Accessor for field ‘origin_level’ clashes with related field ‘AppleLevel.apple_set’. Add a related_name argument to the definition for ‘origin_level’.
monitor.apple: Accessor for field ‘new_level’ clashes with related field ‘AppleLevel.apple_set’. Add a related_name argument to the definition for ‘new_level’.
原因:
一个数据表同时两次外键引用另一个表,出现重名问题。
解决办法:
使用related_name属性定义名称(related_name是关联对象反向引用描述符)。
具体修改代码如下:
class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel, related_name='orgin_level_appleset') new_level = models.ForeignKey(AppleLevel, related_name='new_level_appleset')
related_name使用之后,有什么用处呢?
用处就是:
通过AppleLevel可以得到引用自身的Apple对象。
例如,
通过origin_level引用AppleLevel 中id为12的Apple的所有对象
AppleLevel.object.get(id=12).origin_level_appleset.objects.all()
通过new_level引用AppleLevel 中id为12的Apple的所有对象
AppleLevel.object.get(id=12).new_level_appleset.objects.all()
转载于:https://www.cnblogs.com/eternal1025/p/9244099.html
Django model 反向引用中的related_name相关推荐
- Django model反向关联名称的方法(转)
原文:https://www.jb51.net/article/152825.htm 转载于:https://www.cnblogs.com/olivertian/p/11150084.html
- Django Model设计详解
Django Model 设计 Django Model设计是Django五项基础核心设计之一(Model设计,URL配置,View编写,Template设计,From使用),也是MVC模式中重要的环 ...
- 正则基础之——反向引用
From: http://blog.csdn.net/lxcnn/article/details/4476746 1 概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用, ...
- 正则表达式之反向引用
1.概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用.要了解反向引用,首先要了解捕获组,关于捕获组,参考 正则基础之--捕获 ...
- django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
2019独角兽企业重金招聘Python工程师标准>>> 1.多表连接查询:当我知道这点的时候顿时觉得django太NX了. class A(models.Model): ...
- Django ORM查询之外键、关系的反向引用
关系本身就是相互的,只用在一个表中记录,而不是在有关系的两个表中都记录.所以外键.关系提供反向引用机制.当然,外键可以是多个表的外键,关系也可以与多个表有关系,所以反向引用必须显式指出关系对方表(然后 ...
- python django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct[转]...
1.多表连接查询:当我知道这点的时候顿时觉得django太NX了. class A(models.Model): name = models.CharField(u'名称') clas ...
- backreference Oracle正則表達式中的反向引用
这是Oracle对正則表達式的backreference的描写叙述 从定义中能够看到,当匹配表达式中已()的形式将一个子串包括起来.后面就能够以\? 的形式来引用.\1相应第一个(),\2相应第二个. ...
- Java正则表达式中的反向引用
Java正则表达式中的反向引用是Java提供的另一个重要功能. 要了解反向引用 ,我们首先需要了解群组 . 正则表达式中的分组意味着将多个字符视为一个单元. 通过将要分组的字符放在一组括号" ...
- 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)
文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...
最新文章
- php设计模式 - 建造者模式
- python3作用域
- JAVA数据库编程(JDBC技术)-入门笔记
- app中传递java数据_Java实现app接口和Socket消息传递(6)servlet映射并返回Json数据
- BZOJ1922 SDOI2010 大陆争霸 最短路
- thinkpaidE480office安装文件夹
- 通用职责分配软件原则之5-控制器原则
- 【codevs3160】 LCS 【后缀自动机】
- pyTorch api
- libvpx在windows下的编译
- python怎么发音乐到朋友圈_只要三步,用Python轻松制作短视频,你也能在朋友圈傲娇一把!...
- 手机网站前端开发经验总结
- 音量放大器--软件实现
- 如何用小米玩华为游戏华为账号
- 不卡顿成用户购机第一要素,Mate 9深得人心
- matplotlib 柱状图画误差棒
- 按键精灵文字识别插件_【买三赠一】iOS按键精灵VIP夏季特惠进行中
- DEDE,DEDE网站搬家,DEDECMS搬家教程,一看就会!
- Node模块--chalk
- lotus - 深入理解时空证明的 golang 实现部分(PoSt)