17

utf-8对 mysql 数据库使用一般不区分大小写,但django创建了一个测试数据库latin collation

我设置了这个:

TEST_CHARSET="utf8_general_ci"

TEST_COLLATION="utf8_general_ci"

在设置文件中,但无济于事。

我还应该做什么?

4

6 回答 6

27

TEST_CHARSET和在 Django 1.8 中TEST_COLLATION被重命名为CHARSETCOLLATION移动到TEST字典:

DATABASES = {
    ...
    'TEST': {
        'CHARSET': 'utf8',
        'COLLATION': 'utf8_general_ci',
    }
}
于 2015-08-09T11:14:39.513 回答
12

在设置中添加:

DATABASES = {
    'default': {
        ...
        'TEST_CHARSET': "utf8",
        'TEST_COLLATION': "utf8_general_ci",
    }
}
于 2013-05-22T20:30:03.880 回答
9

请在此处查看:https ://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-DATABASE-TEST

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': <db_name>,
        'USER': <user>,
        'PASSWORD': <password>,
        'HOST': <host>,
        'PORT': <port>,
        'TEST': {
            'NAME': <test_db_name>,
            'CHARSET': 'utf8',
            'COLLATION': 'utf8_general_ci',
        },
    },
}
于 2017-10-28T15:27:25.900 回答
1

我遇到了同样的问题,花了几个小时才发现它,直到注意到

TEST_CHARSET
TEST_COLLATION

应该是数据库的一部分,而不是 settings.py。很容易把它们混在一起...

https://docs.djangoproject.com/en/dev/ref/settings/#testing

于 2013-03-08T14:43:42.167 回答
0

正如其他人指出的那样,您需要这样的东西来创建数据库

DATABASES = {
    ...
    'TEST': {
        'CHARSET': 'utf8mb4',
        'COLLATION': 'utf8mb4_unicode_ci',
    }
}

但是您还需要确保您也有类似的东西,以确保您的测试使用适当的字符集与数据库通信。

DATABASES = {
    ...
    'OPTIONS': {
        'charset': 'utf8mb4'
     }
}
于 2020-04-05T19:51:19.680 回答
-2

看看这里的设置文件示例:https ://docs.djangoproject.com/en/dev/ref/databases/#connecting-to-the-database

于 2012-10-15T14:36:29.627 回答