我的模特:
class Image(models.Model):
name=models.CharField(max_length=40,unique=True,help_text="name of the image")
tags = models.ManyToManyField(Tag)
class Tag(models.Model):
tag = models.CharField(max_length=100,unique=True)
在这里进行迁移并迁移时,它是在数据库1.image 2.tag 3.image_tags表中创建3个表
所以,我的问题是我没有在我的models.py文件中指定image_tags表,django从那里创建image_tags表,流程是什么? 我已经签入了迁移文件,但是对此一无所知
答案 0 :(得分:0)
实际上,这不是Django功能。它是SQL功能。 SQL正在创建内部表。由于SQL无法创建引用,因此它不是外键。这就是为什么出现此桥接表概念的原因。它将解决该问题,并将保留两个表的数据(ID)和少量自定义字段,具体取决于需求。
更新了新的要求: 请参考:
https://gist.github.com/jacobian/827937
从我的角度来看,定制桥接表不是一个好习惯。您可以为两个表中的任何一个指定额外的字段,否则创建一个新表使其成为外键