我有模特
class SomeModel(models.Model):
target_field = models.ForeignKey(
'OtherModel', on_delete=models.PROTECT, verbose_name=_('Target Field'),
)
而且我想将其更改为
class SomeModel(models.Model):
target_field_id = models.PositiveIntegerField(_('Target field id'))
我想做到这一点而不会丢失ForeignKey字段存储在target_field_id中的数据。
我只是尝试进行makemigrations。但是它将删除列,然后创建新列。
非常感谢您的帮助。
在Django ForeignKey
中,字段的值存储在末尾带有_id的属性中,您可以直接访问该属性以避免访问数据库。我建议不要更改属性名称,只需将models.ForeignKey
更改为models.PositiveIntegerField
。没有数据丢失。