感谢您抽出宝贵的时间阅读本文章。
我对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
。
在解决此问题之前,我无能为力。我求求你们,请帮忙。
注意:理想情况下,我希望保留当前数据库的内容。
感谢您抽出宝贵的时间阅读本文章。
答案 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标志,该命令将出错,因为 要创建的表格已经存在。)
请注意,这仅适用于以下两种情况:
- 自创建表格以来,您尚未更改其模型。对于 要进行迁移,您必须先进行初始迁移,然后 然后进行更改,因为Django将更改与迁移文件(而不是数据库)进行比较。
- 您尚未手动编辑数据库-Django无法检测到您的数据库与您的模型不匹配,当迁移尝试修改这些表时,您只会得到错误提示。