卸载django-tinymce。进行迁移时导入错误

时间:2019-07-11 02:40:51

标签: python django django-tinymce

感谢您抽出宝贵的时间阅读本文章。

我对django中的TinyMCE扩展不满意,因此决定改用django-summernote。我先跑了

pip uninstall django-tinymce

删除了实际项目中所有关于tinymce的提及。

按照说明安装django-summernote。完成后,我决定运行

python manage.py makemigrations
python manage.py migrate

应用新扩展名,但出现错误:

File "/Users/rasulkireev/Sites/dj-pw/now/migrations/0006_auto_20190703_0134.py", line 4, in <module>
    import tinymce.models
ModuleNotFoundError: No module named 'tinymce'

我不确定Django为什么会关心以前的工作,因为我只是要求替换编辑器。我也无法运行python manage.py runserver

在解决此问题之前,我无能为力。我求求你们,请帮忙。

注意:理想情况下,我希望保留当前数据库的内容。

感谢您抽出宝贵的时间阅读本文章。

1 个答案:

答案 0 :(得分:0)

从模型,管理员和其他文件中删除所有提及tinymce的内容后,您需要使用特殊的“标志”进行迁移:

python manage.py makemigrations
python manage.py migrate --fake-initial

我不打算在此方法的后端进行清除,但是它可以工作。您可以在Django官方网站上阅读有关它的更多信息: https://docs.djangoproject.com/en/2.2/topics/migrations/

  

这将为您的应用进行新的初始迁移。现在,运行python   manage.py migrate --fake-initial,Django会检测到您有   初始迁移,并且它想要创建的表已经   存在,并且会将迁移标记为已应用。 (没有   migrate --fake-initial标志,该命令将出错,因为   要创建的表格已经存在。)

     

请注意,这仅适用于以下两种情况:

     
      
  1. 自创建表格以来,您尚未更改其模型。对于   要进行迁移,您必须先进行初始迁移,然后   然后进行更改,因为Django将更改与迁移文件(而不是数据库)进行比较。
  2.   
  3. 您尚未手动编辑数据库-Django无法检测到您的数据库与您的模型不匹配,当迁移尝试修改这些表时,您只会得到错误提示。
  4.