OperationalError в django при добавлении новой записи

Я создал базу данных mysql с помощью Cpanel. И у меня есть некоторые настройки для базы данных в settings.py :

DATABASES = {  
'default': {  
    'ENGINE': 'django.db.backends.mysql',  
    'NAME': '*****_db',  
    'USER': '******',  
    'PASSWORD': '********',  
    'HOST': 'localhost',  
    'PORT': '3306',  
    'OPTIONS': { 'init_command': 'SET storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci'
    }
}  

}

но проблема в том, что когда я пытаюсь добавить новую запись в django-admin с некоторыми арабскими символами, я получаю эту ошибку :

OperationalError at /admin/courses/arguments/add/
(1366, "Incorrect string value: '\\xD8\\xB3\\xDA\\xAF' for column `asiatrad_db`.`courses_arguments`.`name` at row 1")

В чем проблема? Нужно ли мне создать новую базу данных с charset на utf-8 ?

Кодировка "utf8" поддерживает только три байта на символ. Настоящая кодировка UTF-8, которую все используют, требует до четырех байт на символ. См. эту статью.

Поэтому используйте кодировку "utf8mb4" вместо "utf8".

settings.py должен выглядеть следующим образом:

DATABASES = {  
'default': {  
    'ENGINE': 'django.db.backends.mysql',  
    'NAME': '*****_db',  
    'USER': '******',  
    'PASSWORD': '********',  
    'HOST': 'localhost',  
    'PORT': '3306',  
    'OPTIONS': { 'init_command': 'SET storage_engine=INNODB','charset': 'utf8mb4'}
}  
Вернуться на верх