related_name
2024-08-26 20:14:42
定义表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()
最新文章
- Struts2框架简介和示例
- svn1.6在centos6下的使用
- 用修改hosts的方式来屏蔽某些网站
- GIT本地配置和PUSH
- js判断是iOS还是Android
- ViewPager+tab+Fragment的滑动
- struts2 标签 --<;<;s:url >;
- node操作MongoDB数据库之插入
- javascript笔记——cookie解析
- .NET/C# 类构造函数中this的用法 (转)
- gitlab 启动参考
- UVA - 10714 Ants
- 常用html标签的只读写法
- Even Parity uva11464 模拟
- hdu1009 FatMouse&#39; Trade---贪心
- 【Uva 10269 马里奥与公主的归途】
- code-Behind 技术
- 20165231 2017-2018-2《Java程序设计》课程总结
- 如何在 PhpStorm 使用 Code Generation?
- 浅谈树状数组(为什么lowbit(x)=x&;(-x)
热门文章
- QTP自动化测试
- 【爬虫】如何用python+selenium网页爬虫
- java单例设计模式总结及举例
- C++中的内部类
- edgedb 内部pg 数据存储的探索 (一)基本环境搭建
- Spring boot中自动编译配置
- MQTT研究之EMQ:【JAVA代码构建X509证书】
- fcn训练及预测tgs数据集
- PHP-不同Str 拼接方法性能对比 参考自https://www.cnblogs.com/xiaoerli520/p/9624309.html
- cmd常用命令总结