Ställ in charset
alternativet till utf8mb4
i OPTIONS
dict av DATABASES
inställning i Django-inställningsfilen:
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
}
}
}
Dessa alternativ kommer att skickas som argument till mysql drivrutinsanslutningsfunktionen, som vanligtvis är mysqlclient
. Här kan du se i dokumentationen alla dessa parametrar:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -attribut
Om du använder en annan drivrutin för mysql kan du dock behöva ett annat alternativ.
Se också till att i MySQL-databasen är teckenuppsättningen för antingen kolumnen, tabellen eller hela databasen inställd på utf8mb4
. För mer information om teckenuppsättningar i MySQL se:
MySQL docs:Ange teckenuppsättningar och sorteringar
MySQL docs:utf8mb4 Character Set (4-Byte UTF-8 Unicode-kodning)
Stack Overflow:Vad är skillnaden mellan utf8mb4 och utf8 teckenuppsättningar i MySQL?
Det finns BTW en pågående pull-begäran i Django för att göra utf8mb4
standard:https://github.com/django/django/pull/8886