如何在 Django 中更新模型字段后从 MySQL 数据库中查询数据
How to Query data from MySQL database after updating model field in Django
使用 Django 框架更新 MySQL 数据库中的 posts 模型字段后,我无法从数据库中查询 posts。每当我 运行 命令 python manage.py runserver
时,服务器似乎一切正常。但是,当输入 post url 以显示我在更新模型字段之前上传到数据库的 post 列表时,我得到 1054, "Uknown column 'start_post.author_id' in the 'field list'
我花了几个小时试图弄清楚为什么我会收到错误,但我仍然不明白。
在 model.py 我有:
....
title = models.CharField()
preamble= models.Charfield()
body = models.TextField()
....
我将上面的模型更新为:
....
title = models.CharField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
introduction = models.charfield()
body = models.TextField()
....
更新之前一切正常。但是更新后,我无法从 url start\
以及 post 详细信息页面访问浏览器上的 post 列表。我在第一个模型中没有作者字段,但我将其添加到更新后的模型中。我该怎么做才能解决这个问题?
更新模型后,您必须运行命令:
python manage.py makemigrations
python manage.py migrate
makemigrations 命令将检查数据库中的当前模型与 python 代码中的模型之间的差异。
migrate 将真正运行 迁移以反映您的模型与数据库模型。
您可以在 django documentation about makemigrations and migrate 中找到有关 makemigrations 和 migrate 的更多信息。
使用 Django 框架更新 MySQL 数据库中的 posts 模型字段后,我无法从数据库中查询 posts。每当我 运行 命令 python manage.py runserver
时,服务器似乎一切正常。但是,当输入 post url 以显示我在更新模型字段之前上传到数据库的 post 列表时,我得到 1054, "Uknown column 'start_post.author_id' in the 'field list'
我花了几个小时试图弄清楚为什么我会收到错误,但我仍然不明白。
在 model.py 我有:
....
title = models.CharField()
preamble= models.Charfield()
body = models.TextField()
....
我将上面的模型更新为:
....
title = models.CharField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
introduction = models.charfield()
body = models.TextField()
....
更新之前一切正常。但是更新后,我无法从 url start\
以及 post 详细信息页面访问浏览器上的 post 列表。我在第一个模型中没有作者字段,但我将其添加到更新后的模型中。我该怎么做才能解决这个问题?
更新模型后,您必须运行命令:
python manage.py makemigrations
python manage.py migrate
makemigrations 命令将检查数据库中的当前模型与 python 代码中的模型之间的差异。
migrate 将真正运行 迁移以反映您的模型与数据库模型。
您可以在 django documentation about makemigrations and migrate 中找到有关 makemigrations 和 migrate 的更多信息。