Django创建News与Category模型后,Category未在SQLiteStudio显示的问题
问题描述
我在Django中创建了News和Category两个模型,代码如下:
from django.db import models class News(models.Model): title = models.CharField(max_length=150,verbose_name='Заголовок') content = models.TextField(blank=True, verbose_name='Текст') created_at = models.DateTimeField(auto_now_add=True, verbose_name='Время создания') updated_at = models.DateTimeField(auto_now=True, verbose_name='Время создания') photo = models.ImageField(upload_to='media/%y/%m/%d', null='True', blank='True', verbose_name='Фото') is_published = models.BooleanField(default=True, verbose_name='Публикация') class Category(models.Model): title = models.CharField(max_length=150, db_index=True, verbose_name='Категория')
执行迁移操作后,在SQLiteStudio中能看到News模型对应的表,但看不到Category模型的表,请问哪里操作出错了?
可能的错误原因及解决方法
未生成Category模型的迁移文件:
Django不会自动为新增模型创建迁移文件,需手动执行生成命令:python manage.py makemigrations执行后检查控制台输出,确认是否包含
Category的迁移记录(如Created new migration: 0002_category)。若未生成,先检查模型所在应用是否在settings.py的INSTALLED_APPS列表中注册。未将迁移同步到数据库:
生成迁移文件后,需执行命令将变更同步到数据库:python manage.py migrate查看输出确认对应迁移已应用(如
Applying your_app_name.0002_category... OK)。模型所在应用未注册:
打开settings.py,检查INSTALLED_APPS列表,确保包含模型所在的应用名称(例如模型在news应用中,需添加'news'到列表)。未注册的应用,Django会忽略其模型的迁移处理。SQLiteStudio未刷新数据库连接:
数据库表可能已生成但未显示,右键点击SQLiteStudio中的数据库连接,选择刷新或重新连接后再查看。迁移文件生成异常:
若makemigrations未生成Category的迁移,可删除该应用下migrations目录(保留__init__.py),再重新执行:python manage.py makemigrations python manage.py migrate注意:此操作会重置该应用的迁移记录,生产环境需谨慎操作。
内容的提问来源于stack exchange,提问作者Иван Пешков

