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 相关文章推荐
python正则分组的应用
Nov 10 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Django admin美化插件suit使用示例
Dec 12 Python
详解Python if-elif-else知识点
Jun 11 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
python爬取酷狗音乐排行榜
Feb 20 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
python3 xpath和requests应用详解
Mar 06 Python
keras slice layer 层实现方式
Jun 11 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
浅谈django orm 优化
2018/08/18 Python
python中强大的format函数实例详解
2018/12/05 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python实现飞行棋游戏
2020/02/05 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
优秀辅导员事迹材料
2014/02/16 职场文书
打架检讨书2000字
2014/02/22 职场文书
工作睡觉检讨书
2014/02/25 职场文书
差生评语大全
2014/05/04 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
顶岗实习计划书
2015/01/16 职场文书
2015选调生工作总结
2015/07/24 职场文书
学习计划是什么
2019/04/30 职场文书
创业计划之特色精品店
2019/08/12 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS