首页 > 解决方案 > 如何在模型更新后使用 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 的新手,我不知道我哪里弄错了。

标签: pythonhtmldjangoformsmysql-python

解决方案


在 django 模型中,即使是很小的更改也需要更改数据库(MySql , SQLite , Postgress ,......没关系)所以如果你更改它并且不运行命令 python manage.py makemigrations 和 python manage.py migrate django 将在数据库中查找无法找到的,因为您没有更改它。所以你只需要在改变模型后运行这些代码


推荐阅读