为了账号安全,请及时绑定邮箱和手机立即绑定

django 模型中one-to-many和foreign key不是特别能够理解?

django 模型中one-to-many和foreign key不是特别能够理解?

三国纷争 2019-04-08 11:16:59
在《TheDjangoBook》中有这么一个实例描述我们来假定下面的这些概念、字段和关系:一个作者有姓,有名及email地址。出版商有名称,地址,所在城市、省,国家,网站。书籍有书名和出版日期。它有一个或多个作者(和作者是多对多的关联关系[many-to-many]),只有一个出版商(和出版商是一对多的关联关系[one-to-many],也被称作外键[foreignkey])它说,书籍和出版商的关系是一对多,OneToMany(也叫外键,ForeignKey),这个我就觉得没法理解,在我看来,一本书应该只能属于一个出版商,一个出版商可以出多本书。从字面上理解,应该是ManyToOne啊然后对应到models,TheDjangoBook是这么写的,只在Book这个模型中注明了外键classBook(models.Model):title=models.CharField(max_length=100)authors=models.ManyToManyField(Author)publisher=models.ForeignKey(Publisher)'''here!'''publication_date=models.DateField()但是以之前字面上的理解,我觉得应该是在出版商那个模型上为book增加ForeignKey(OneToMany)啊...'''这是我的理解,但是应该是错的...'''classPublisher(models.Model):name=models.CharField(max_length=30)address=models.CharField(max_length=50)city=models.CharField(max_length=60)state_province=models.CharField(max_length=30)country=models.CharField(max_length=50)book=models.ForeignKey(Book)'''here'''website=models.URLField()
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

LZ,Django官方所说的one-to-many只是它的写法而已,不具有指向性。更明确的是外键这种叫法。
如果按照你所理解的具有指向性,那么就要写成one-to-many和many-to-one了。
但要注意:one-to-one和foreignkey(unique=True)两种确实有指向性,至少在调用的时候会有这种差别。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 1117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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