在django中迁移模型时如何解决SQLdecode错误?

akh*_*l s 2 python django django-models mongodb django-migrations

我是 django 的新手,我创建了一个项目和应用程序,我想将我的项目连接到 mongodb。当我输入python manage.py migrate命令时,我遇到了下面提到的错误。

我删除了数据库并清除了 django_migration 表中的所有迁移,并删除了创建的迁移文件夹中的迁移文件。仍然得到同样的错误。

请帮我解决一下这个。提前致谢

错误:

    raise TypeError("documents must be a non-empty list")
TypeError: documents must be a non-empty list
Run Code Online (Sandbox Code Playgroud)

上述异常是以下异常的直接原因:

djongo.sql2mongo.SQLDecodeError: FAILED SQL: INSERT INTO "django_migrations" ("app", "name", "applied") VALUES (%(0)s, %(1)s, %(2)s)
    Version: 1.2.31
Run Code Online (Sandbox Code Playgroud)

设置.py

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'DB_name',
        'HOST':'localhost',
        # 'PORT': 27017,
        # 'USER':'',
        # 'PASSWORD':''
    },
Run Code Online (Sandbox Code Playgroud)

模型.py

from django.db import models

# Create your models here.
class dummy(models.Model):

    name= models.CharField(max_length=100, blank=True, null= True)
Run Code Online (Sandbox Code Playgroud)

小智 5

创建 django 项目后,通过键入卸载sqlparse

pip3 uninstall sqlparse
Run Code Online (Sandbox Code Playgroud)

然后通过键入安装 sqlparse version=0.2.4

pip3 install sqlparse==0.2.4
Run Code Online (Sandbox Code Playgroud)

然后通过键入迁移mongodb数据库

python3 manage.py migrate
Run Code Online (Sandbox Code Playgroud)

如果您使用的是python2,则在命令中使用 ( pip ) 而不是 ( pip3 ) 和 ( python ) 而不是 ( python3 ) 。