首页 > 解决方案 > 如何更新 MySQL 数据库中的 Django 模型字段

问题描述

我在 Django 中为帖子创建了一个模型,并且正在尝试更新数据库(MySQL)中的一个字段。我有以下代码块:model.py

class Post (models.Model):
    title = models.CharField()
    preamble = models.CharField()
    body = models.TextField ()
createdAt = models.DateTimeField(auto_now_add=True, blank=True)

我想添加另一个名为 author 的字段author=models.ForeignKey(User, on_delete=models.CASCADE 另外,我想将其中一个字段的名称从preamble更改为introduction

每当我运行命令python manage.py makemigrationspython manage.py migrate,我都会收到一个错误,该错误会终止迁移过程。它告诉我preamble数据库中的字段无法识别。可以更新preambleintroduction吗?

标签: pythondjangodjango-modelsfieldmysql-python

解决方案


  • 确保在进行任何修改之前迁移应用的初始状态。
  • 将该preamble字段重命名为introduction模型中的,不进行其他更改。
  • 运行makemigrations。它应该询问您是否是重命名。
  • 添加author外键。
  • 运行makemigrations。如果用户字段不可为空,它应该要求您提供用户字段的默认值;1希望应该是指在您的系统中创建的第一个用户。
  • 运行migrate

推荐阅读