删除了我所有的迁移,包括__init.py__



我是Django的初学者。我最近一直在做一个有几个不同页面的网站。我在urls.py中引用了其他应用的几个视图。我使用的一个应用程序用于输入并进行一些计算,因此它定义了一些表单。这一切都很好,我能够导入视图很好,但我改变了我的一个表单字段名。这导致了一些问题,因为我将这些值存储在数据库中。这对我来说是有意义的,因为我已经用以前的命名约定保存了一些数据,现在我改变了它。因此,我认为删除数据库和迁移将允许我重新开始,并使用更新后的字段创建一个新数据库。我搞砸了,因为我读到我不应该删除我的init。py文件在我的迁移文件夹

我已经尝试用makemigrations&migrate重新做我的迁移,但是我一直得到一个错误,说没有做任何更改,也没有新的迁移显示在我的文件夹中。现在,当我查看我的url .py文件时,导入的视图和应用程序显示为红色下划线,并显示"import package"

我也试过还原我的代码,并能够得到迁移文件回来,但同样的错误显示在我的urls.py文件。

我已经尝试了我能在网上找到的所有应用程序,但现在我想我可能只需要重新创建这些应用程序。

任何帮助都是感激的!

首先,要重命名表单字段,只需在模型中更改它,然后进行并应用迁移。Django应该检测现有字段的重命名并创建migrations.AlterField(...)语句(你可以检查已经创建的迁移文件,如果它们还没有被应用/迁移,可以自由地删除它们)。

首先,请检查将名为__init__.py的空文件添加到迁移文件夹中是否解决了问题。这是python的要求,让解释器知道文件夹包含python模块。此外,如果您已经从某处下载了项目,则需要有现有的迁移。删除它们并重新创建它们可能会失败。

之后试着运行

python manage.py makemigrations
python manage.py migrate

如果仍然没有更改,通过查看django_migrations表或运行以下命令检查是否有迁移应用到数据库:

python manage.py showmigrations

如果这没有帮助,试着从一个干净的项目开始:

  1. 备份你所有的代码更改并恢复到起点,__init__.py文件应该回来,你也应该删除数据库(db.sqlite3)
  2. 运行迁移命令
  3. 添加所有代码更改
  4. 检查您的代码更改是否有新的迁移文件,它们可能会导致问题。如果你还没有手动创建或修改它们,你可以删除它们,然后让Django重新创建它们

最新更新