我的代码段如下:
class Table1(models.Model):
name = models.CharField(max_length=20)
class Table2(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
table1 = models.ForeignKey(Table1)
考虑两个表都有数据库中的数据。在不丢失数据库中现有数据的情况下,将Foreign Key Field(in Table2)
转换为Many To Many
字段的可能方法是什么?
*Note: I am using Django 1.6.4(not using Django migrations)*
答案 0 :(得分:0)
您需要分几步完成。首先添加M2M字段并复制数据。接下来,更改应用程序逻辑以使用新字段。最后,您可以删除旧的ForeignKey字段。
答案 1 :(得分:0)
class Table2(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
table1 = models.ForeignKey(Table1)
table1_new = models.ManyToManyField(Table1, related_name='_')
# python manage.py makemigrations && python manage.py migrate && python manage.py shell
# get things done by a for loop
class Table2(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
table1_new = models.ManyToManyField(Table1, related_name='_')
# python manage.py makemigrations && python manage.py migrate
class Table2(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
table1 = models.ManyToManyField(Table1)
# python manage.py makemigrations && python manage.py migrate