我使用 Django 3.1 中宣布的新
JSONField
创建了一个 Django 项目,它支持所有数据库。
我已在 Linux 计算机上成功使用此字段,但在 Windows 上使用同一项目运行
python manage.py migrate
失败,并显示以下消息:
(fields.E180) SQLite does not support JSONFields.
两台 PC 中使用相同版本的 Python 和 Django。
要将
JSONField
与 Django 3.1+ 和 sqlite 一起使用,必须安装 JSON1
sqlite 扩展。
要在 sqlite 上启用 JSON1,请按照 Django wiki 上的说明操作:https://code.djangoproject.com/wiki/JSON1Extension。
Windows 说明:
python -c "import platform;print(platform.architecture()[0])"
%localappdata%\Programs\Python\PythonXX
中,其中 XX 是 Python 版本。例如,它位于 C:\Users\<username>\AppData\Local\Programs\Python\Python37
。如果您将Python安装目录添加到PATH环境变量中,您可以在命令提示符下运行命令where python
来找到它。
输入 Python 安装中的 DLL 目录。sqlite3.dll
目录内的DLLs
。sqlite3.dll
并将其放入DLLs
目录中。我在尝试应用 django-allauth 模块的迁移时遇到了同样的问题;并切换到新版本的Python解决了这个问题。
根据 Django 网站,版本应该是 3.9+。 https://code.djangoproject.com/wiki/JSON1Extension