关于related_name的问题

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。related_name:Django中默认每个主表的对象都有一个是外键的属性,可以通过它来查询到所有属于主表的子表的信息。不写也是可以的。

这个属性的名称默认是以子表的名称小写加上_set()来表示(例:表名为student,则此时为student_set),若设置了related_name,则可以使用related_name的值来代替表名

例:

class Person(models.Model):
    name = models.CharField(verbose_name='作者姓名', unique=True, max_length=10)
    age = models.IntegerField(verbose_name='作者年龄')
 
class Book(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    title = models.CharField(verbose_name='书籍名称', max_length=10)
    pubtime = models.DateField(verbose_name='出版时间')

查询person关联的所有书籍对象:

book = person.book_set.all()

若定义了related_name为person_books,则可以使用person.person_books.all()

后面课程中有对related_name的应用,同学可以先作为了解

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师