Django "Неверная смесь сопоставлений" для MySQL utf8mb4 таблицы - PullRequest
1 голос
/ 18 апреля 2020

Я рассмотрел другие вопросы, связанные с этой топикой c, такие как django python ошибка сопоставления

Однако в решениях говорится, что для кодирования таблицы используется utf8 кодировок. Это не жизнеспособное решение для нашего современного приложения Django, работающего на базе данных в кодировке utf8mb4.

В моем случае мне нужно применять кодировку или сопоставление в сгенерированном запросе Django или в Сама БД, когда передаются символы utf-8 (от вызова до model.objects.get_or_create(), я полагаю, с символом emoji, передаваемым в одном из полей kwargs.)

Я получаю эту ошибку:

django .db.utils.OperationalError: (1267, "Недопустимое сочетание параметров сортировки (utf8mb4_unicode_ci, IMPLICIT) и (utf8_general_ci, COERCIBLE) для операции '='")

Любой совет приветствуется. Спасибо!

1 Ответ

1 голос
/ 18 апреля 2020

В вашем shared_settings.py файле попробуйте следующее:

DATABASES = {
    "default": {
        "NAME": "DBNAME",
        "ENGINE": "django.db.backends.mysql",
        ...
        "OPTIONS": {"charset": "utf8mb4"}
        # ^ Set the options
    }
}
...