python - 如何在模型更新后使用 Django 从 MySQL 数据库中查询数据
问题描述
使用 Django 框架更新 MySQL 数据库中的帖子模型字段后,我无法从数据库中查询帖子。每当我运行命令 python manage.py runserver 时,服务器似乎一切正常。但是,当输入帖子 url 以显示我在更新模型字段之前上传到数据库中的帖子列表时,我得到 1054,“Uknown column 'start_post.author_id' 在'field list'
我花了几个小时试图找出原因我收到错误但我仍然不明白。在model.py中我有:
title = models.CharField()
preamble= models.Charfield()
body = models.TextField()
createdAt = models.DateTimeField(auto_now_add=True, blank=True)
我将上述模型更新为:
title = models CharField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
introduction
= models.charfield ()
body = models.TextField()
createdAt = models.DateTimeField(auto_now_add=True, blank=True)
def get_absolute(self):
return reverse ('post-details', kwarks={'pk': set.pk})
视图.py
••••
class PostListView(Listview):
model = Post
template_name = 'start/start.html'
context_object_name = 'posts'
ordering = ['createdAt']
开始.html
•••
{% for post in posts %}
<h3>{{ post.title }}</h3>
<i>{{ post.createdAt }} </I>
<p>{{ post.introduction }}</p>
<p>{{ post.body }}</p>
{% endfor %}
••••
在更新之前,一切正常。但是在更新它之后,我无法从 urlstart/
以及帖子详细信息页面访问浏览器上的帖子列表。我在第一个模型中没有作者字段,但我将其添加到更新的模型中。作为 Django 的新手,我不知道我哪里弄错了。
解决方案
在 django 模型中,即使是很小的更改也需要更改数据库(MySql , SQLite , Postgress ,......没关系)所以如果你更改它并且不运行命令 python manage.py makemigrations 和 python manage.py migrate django 将在数据库中查找无法找到的,因为您没有更改它。所以你只需要在改变模型后运行这些代码
推荐阅读
- android - 无法理解 () -> 调用
- r - 如何为 R 中的每一列创建一个单独的数据框,然后将所有栅格图层栅格化并将其绑定到多层栅格中?
- azure - 扩展 Azure SQL 弹性池存储时是否存在停机时间?
- php - 如何使用多个 php-fpm docker 容器设置单个 nginx 服务器
- flutter - 如何将小部件嵌入图像并将其保存到设备
- java - 使用 Apache POI HSSF 在 Excel 中存储 ArrayList
- laravel - Laravel 更新单列
- python - 生成所有连续子数组的算法
- networking - K8s中不同集群中的Pod之间使用yaml进行通信
- python - Python OpenGL 不会加载纹理