6

我用JSONFieldDjango 3.1 中宣布的新版本创建了一个 Django 项目,它支持所有数据库。

我已经在 linux 机器上成功使用了这个字段,但是python manage.py migrate在 Windows 上使用相同的项目运行失败并显示以下消息:

(fields.E180) SQLite does not support JSONFields.

两台 PC 都使用相同版本的 Python 和 Django。

4

1 回答 1

14

JSONField与 Django 3.1+ 和 sqlite 一起使用,JSON1必须安装 sqlite 扩展

要在 sqlite 上启用 JSON1,请遵循 Django wiki 上的说明:https ://code.djangoproject.com/wiki/JSON1Extension 。

Windows 使用说明:

  • 检查您的 python 安装 - 它是 32 位还是 64 位?跑:python -c "import platform;print(platform.architecture()[0])"
  • 下载与您的 Python 安装(32 位或 64 位)匹配的预编译 DLL 。
  • 找到您的 Python 安装。默认情况下,它应该是 in %localappdata%\Programs\Python\PythonXX,其中 XX 是 Python 版本。例如,它位于C:\Users\<username>\AppData\Local\Programs\Python\Python37. 如果您将 Python 安装目录添加到 PATH 环境变量中,则可以在where python命令提示符下运行该命令来定位它。在 Python 安装中输入 DLLs 目录。
  • sqlite3.dll在目录中重命名(或删除)DLLs
  • 从下载的 DLL 存档中提取sqlite3.dll并放入DLLs目录中。
  • 现在,JSON1 扩展应该可以在 Python 和 Django 中使用了。
于 2020-06-29T11:49:11.463 回答