Indstil charset
mulighed for at utf8mb4
i OPTIONS
dict af DATABASES
indstilling i Django-indstillingsfilen:
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
}
}
}
Disse muligheder vil blive videregivet som argumenter til mysql driverforbindelsesfunktionen, som typisk er mysqlclient
. Her kan du i dokumentationen se alle disse parametre:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -attributter
Hvis du bruger en anden driver for mysql kan du dog have brug for en anden mulighed.
Sørg også for, at i MySQL-databasen er tegnsættet for enten kolonnen, tabellen eller hele databasen sat til utf8mb4
. For mere info om tegnsæt i MySQL se:
MySQL docs:Specificering af tegnsæt og sorteringer
MySQL-dokumenter:utf8mb4-tegnsættet (4-Byte UTF-8 Unicode-kodning)
Stack Overflow:Hvad er forskellen mellem utf8mb4 og utf8 tegnsæt i MySQL?
Der BTW en løbende pull-anmodning i Django for at lave utf8mb4
standarden:https://github.com/django/django/pull/8886