Django-使用makemigrations将外键更新为BigAutoField

时间:2018-12-28 19:12:38

标签: django django-models django-database

拥有具有以下代码的模型:

class Author(models.Model):   
   id = models.AutoField(primary_key=True)
   name= models.CharField(max_length=100)

拥有了另一个使用上述模型的模型:

class Book(models.Model):   
   id = models.AutoField(primary_key=True)
   title = models.CharField(max_length=100)
   author = models.ForeignKey(Author, on_delete=models.PROTECT)

但是,由于必须与其他数据库进行集成,因此Author的ID变成了一个非常大的整数。

因此,我不得不将id中的Authormodels.AutoField()更改为models.BigAutoField()

几乎一切顺利。但是"author"中的字段"Book"仍然是普通的Integer字段。现在,当我尝试从作者处插入新书时遇到了问题,因为某些作者的ID太大。

我找到了一个解决方案,但是在我当前的数据库中这是不可行的,因为在其他模型中,我的情况与此相同。

我尝试运行django的makemigrationsmigrate,但是即使在字段更改后,他也不会更新表结构。

请,我有什么可以做的吗?

0 个答案:

没有答案