Django 解决model 反向引用中的related_name问题


Posted in Python onMay 19, 2020

问题:

定义表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()

以上这篇Django 解决model 反向引用中的related_name问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
Python多继承顺序实例分析
May 26 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
Python配置文件处理的方法教程
Aug 29 Python
pytorch 归一化与反归一化实例
Dec 31 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 Python
django queryset 去重 .distinct()说明
May 19 #Python
django正续或者倒序查库实例
May 19 #Python
Django model.py表单设置默认值允许为空的操作
May 19 #Python
django 模型中的计算字段实例
May 19 #Python
Django获取model中的字段名和字段的verbose_name方式
May 19 #Python
Python日志处理模块logging用法解析
May 19 #Python
基于PyQT实现区分左键双击和单击
May 19 #Python
You might like
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
详解python进行mp3格式判断
2016/12/23 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
Python 多进程、多线程效率对比
2020/11/19 Python
药学专业个人自我评价
2013/11/11 职场文书
中考冲刺决心书
2014/03/11 职场文书
医药营销个人求职信
2014/04/12 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
信访工作个人总结
2015/03/03 职场文书
2015年教师节慰问信
2015/03/23 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
golang slice元素去重操作
2021/04/30 Golang
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers