导读:今天首席CTO笔记来给各位分享关于django中怎么使用多对多的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
django model里怎么实现外键对多种model
首先题主用的Django版本是什么,django貌似没见过ForeignModel,根据orm,ForeignKey实际上就是sql里面的外键,个人理解楼主的题目是能不能一个字段对应多个其他表,如下:
class WhatAreYouTryToAsk:
filed_XXX = models.ForeignKey((ModelA,ModelB,))
这是不科学的啊亲,对于sql来说也不会一个字段能对应多个外键,想实现这种效果只能是有一张ModelA,ModelB的中间表,而filed的外键对应这张中间表
class MiddleTable(models.Model):
model_a = models.ForeignKey(ModelA)
model_b = models.ForeignKey(ModelB)
class WhatAreYouTryToAsk:
filed_XXX = models.ForeignKey(MiddleTable)
简单的说就是ModelA和ModelB有一个多对多的关系,上面的方法是显示的指明一个MiddleTable表,实时上可以使用Django里面的ManyToMany,ManyToMany的实际上会建一张中间表,因此你可以在ModelA或ModelB建立一个ManyToMany的字段,具体ManyToMany的用法请查阅文档。
class ModelA(models.Model):
model_bs = ManyToMany(ModelB)
class WhatAreYouTryToAsk:
filed_XXX = models.ForeignKey(ModelA)
# or this, 具体实现看需求
# filed_XXX = models.ForeignKey(ModelB)
django 多对多怎么插入数据
首先你需要建立django的对象模型
建立两个模型之间的关系表
将数据保存到关系表中。
具体的插入方法,可以参考:
如果解决了您的问题请采纳!
如果未解决请继续追问
django many to many 怎么用
这个问题比较复杂,根本在于你要理解什么是多对多。
举个例子:一个作者可以写多本书,每本书也可以有多个作者。
这就是多对多,体现在Django的ORM中就是:作者模型和书模型之中的一方,需要添加一个ManyToManyField字段。注意是一方,不是双方,只需要添加一个字段不是两个字段。
更详细的内容可以阅读我的博客。
结语:以上就是首席CTO笔记为大家整理的关于django中怎么使用多对多的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~