我有一个 Django 模型,它以前是这样的:
class Car(models.Model):
manufacturer_id = models.IntegerField()
有另一个模型叫做
Manufacturer
,它的id
字段是指向它的。然而,我意识到使用Django内置的外键功能会很有用,所以我将模型更改为以下内容:class Car(models.Model):
manufacturer = models.ForeignKey(Manufacturer)
这个改变似乎立即生效,查询无错误,但当我尝试运行迁移时,Django输出如下内容:
- Remove field manufacturer_id from car
- Add field manufacturer to car
进行这种迁移将清除数据库中的所有现有关系,所以我不想这样做。实际上,我根本不希望进行任何迁移,因为像Car.objects.get(manufacturer__name="Toyota")
这样的查询工作得很好。我希望有一个适当的数据库外键约束,但这不是一个高优先级的问题。
所以我的问题是:有没有一种方法可以通过迁移或其他方式将现有字段转换为外键?我不能使用--fake
,因为我需要可靠地在开发、生产和同事们的计算机上正常工作。