Nastavte charset
možnost utf8mb4
v OPTIONS
diktátu DATABASES
nastavení v souboru nastavení Django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db',
'USER': 'my_user',
'PASSWORD': 'my_pass',
'HOST': 'my.host',
'OPTIONS': {
'charset': 'utf8mb4' # This is the important line
}
}
}
Tyto možnosti budou předány jako argumenty funkci připojení ovladače mysql, což je obvykle mysqlclient
. Zde můžete vidět v dokumentaci všechny tyto parametry:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -atributy
Pokud používáte jiný ovladač pro mysql však možná budete potřebovat jinou možnost.
Také se ujistěte, že v databázi MySQL je znaková sada sloupce, tabulky nebo celé databáze nastavena na utf8mb4
. Další informace o znakových sadách v MySQL viz:
Dokumenty MySQL:Určení znakových sad a řazení
Dokumenty MySQL:Znaková sada utf8mb4 (4bajtové kódování UTF-8 Unicode)
Stack Overflow:Jaký je rozdíl mezi znakovými sadami utf8mb4 a utf8 v MySQL?
V Djangu mimochodem probíhá žádost o stažení, aby bylo možné vytvořit utf8mb4
výchozí:https://github.com/django/django/pull/8886