related_name
定义表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()
 												
											related_name的更多相关文章
- Django 中related_name,"%(app_label)s_%(class)s_related"
		
先看个model from django.db import models # Create your models here. class Parent(models.Model): name = ...
 - 关于django Models的个人理解和related_name的使用
		
作为一个新人(刚刚大学还没有毕业就出来实习,可以说是真的什么都不知到,什么都要重新学,但是这样真的可以锻炼自己的意志力和能力).现在在公 司是前端和后端一起坐,所以要学的东西是真的多的让人想不到.在学 ...
 - 一个模型中有两个外键指向同一张表时,创建迁移模型时报错:“ HINT: Add or change a related_name argument to the definition for 'AnswersModel.author' or 'AnswersModel.relay_to'.”解决方案
		
class AnswersModel(models.Model): author = models.ForeignKey(FrontUserModel,null=True,related_name=' ...
 - Django中related_name作用
		
相当于我们使用related代替了在通过一个对象查询出多个对象集合时,使用表名_set来获取 我先定义两个模型,一个是作者,一个是作者出版的书籍,算是一对多的类型. class Person(mode ...
 - 反向找related_name以及limit_fields_to
		
问题2:客户的添加页面,通过popup创建用户时 解决方案: 如果新创建的用户时:如果是销售部的人,页面才增加 目的是:拿到limit_choices_to,就可以判断了 当有两个Foreignkey ...
 - related_name和related_query_name举例区别
		
例1: class UserInfo(models.Model): nickname = models.CharField(max_length=32) username = models.CharF ...
 - [django]Django外键(ForeignKey)操作以及related_name的作用
		
https://blog.csdn.net/hpu_yly_bj/article/details/78939748 related_name表面作用 加上 核心related_name作用 https ...
 - ORM中的related_name
		
ORM 的反向查找(related_name) 先定义两个模型,一个是A,一个是B,是一对多的类型. class A(models.Model): name= models.CharField('名称 ...
 - django的related_name
		
转:https://segmentfault.com/q/1010000003705677 就是一个反向关联的属性,比方说model里面定义两个class,一个是A,一个是B class A(Mode ...
 
随机推荐
- 小程序之hover-class
			
hover-class 属性主要是用来来指定元素的点击态效果.但是在在使用中要注意,大部分组件是不支持该属性的. 目前支持 hover-class 属性的组件有三个:view.button.navig ...
 - Java程序第一次作业
			
public class yjj { public static void main(String[] args) { System.out.println("Hello Java" ...
 - SQLI DUMB SERIES-18
			
(1)对username和password无论怎么输入,都没有回显,再看题目,POST - Header Injection - Uagent field - Error based (基于错误的用户 ...
 - Python学习笔记-chapter1
			
我自幼时自觉聪慧,但实缺恒力,遂二十余岁却一事无成,亦无一技傍身,实属惭愧. 少时便仰慕于新兴世界之IT技术,然因惰性,未曾一日习学. 今陷此困境,聊以度日,反无端生出些许时间,便志要潜心研学,不求能 ...
 - 锋利的jQuery初学(4)
			
css选择器与jQuery选择器 css选择器 符号 说明 用法 #id 选择器 #id{} .class 类选择器 .class{} Element 标签选择器 p{} , 并集选择器 div,p{ ...
 - 命令行编译多个java文件
			
如何使用命令行编译多个java文件 文件结构: method 1 cd javaproject javac -sourcepath javapath -d classpath javapath/*.j ...
 - 《python for data analysis》第九章,数据聚合与分组运算
			
# -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...
 - 如何查看电脑已连接的WiFi密码
			
控制面板->网络和Internet->网络和共享中心 点击已连接的WLAN网络,查看“WLAN状态”->无线属性->安全 在显示字符下可以看到已连接wifi的密码
 - 剑指offer 5.栈和队列 	用两个栈实现队列
			
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路:1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程 ...
 - Kafka win10下启动
			
启动kafka之前先要启动zookeeper,而kafka里面时自带有zookeeper的,建议独立部署一套zookeeper服务,kafka下的zookeeper启动命令: zookeeper-s ...