正在回答
1回答
同学你好:
related_name字段指定这个字表在主表中对应的外键属性。
例如:
#买主 class Buyer(models.Model): name = models.CharField(verbose_name='买主名', max_length=10) #水果 class Fruit(models.Model): buyer = models.ForeignKey(Buyer, related_name='buyer_fruit') fruit_name = models.CharField(verbose_name='水果名', max_length=10)
#查询买主,再通过买主查询买的水果。 buyer = Buyer.objects.filter(age = 100).first() #然后通过‘_set’方法获得子表中的数据: fruits = buyer.fruit_set.all() """ django 默认每个主表的对象都有一个是外键的属性,可以通过它来查询到所有属于主表的子表的 信息。 这个属性的名称默认是以子表的名称小写加上_set()来表示,这里我们的主表是buyer, 子表是fruit,所以主表外键的属性就是fruit_set """
fruit_set是django为对象buyer默认创建的外键的属性,建议采用自定义的方式定义主表的外键,而related_name就实现这个功能,在字表中定义外键时,增加related_name字段指定这个字表在主表中对应的外键属性, 如下:
buyer = models.ForeignKey(Buyer, related_name='buyer_fruit') """ 主表:buyer 子表:fruit 子表在主表中对应的外键属性:related_name='buyer_fruit' """ buyer = Buyer.objects.filter(age = 100).first() #然后通过子表中自定义的外键获取子表的所有信息: fruits = buyer.buyer_fruit.all()
所以,related_name的值不建议相同。
如果我解决了同学的问题,请采纳!血学习愉快^_^。
3.从网页搭建入门Python Web
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星