【发布时间】:2021-02-04 06:47:51
【问题描述】:
我正在更改旧数据库的主键。我可以通过将 id 设置为主键来更改主键。
之前
class User(models.Model):
name = models.CharField(max_length=5)
email = models.CharField(max_length=5)
age = models.CharField(max_length=5)
之后
class User(models.Model):
id = models.BigIntegerField(primary_key=True)
name = models.CharField(max_length=5)
email = models.CharField(max_length=5)
age = models.CharField(max_length=5)
然后
python manage.py makemigrations
python manage.py migrate
这工作正常。 但我也想更改通过 ManyToMany 字段创建的表的默认主键。
用户模型
class User(models.Model):
id = models.BigIntegerField(primary_key=True)
name = models.CharField(max_length=5)
email = models.CharField(max_length=5)
age = models.CharField(max_length=5)
用户档案模型
class UserProfile(models.Model):
id = models.BigIntegerField(primary_key=True)
address = models.CharField(max_length=5)
father_name = models.CharField(max_length=5)
pincode = models.CharField(max_length=5)
user = models.ManyToManyField(User)
ManytoMany 字段创建名为 User_user_userprofile 的表,id 为 Autofield,基本上是以前的或默认的 django 主键。
id、user_id、userprofile_id ManytoMany Table
现在,如何更改由Django创建的ManytoMany Feild的primarykey ie id?
PS: 姜戈:1.11 蟒蛇:2.7.5 数据库:Sqlite3 3.7.17 2013-05-20
【问题讨论】:
标签: django database django-models primary-key django-1.11