Stel de charset
in optie om utf8mb4
in de OPTIONS
dictaat van de DATABASES
instelling in het Django-instellingenbestand:
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
}
}
}
Deze opties worden als argumenten doorgegeven aan de mysql-stuurprogrammaverbindingsfunctie, die doorgaans mysqlclient
is. . Hier kunt u in de documentatie al deze parameters zien:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -kenmerken
Als u een andere driver gebruikt voor mysql heb je misschien een andere optie nodig.
Zorg er ook voor dat in de MySQL-database de tekenset van de kolom, de tabel of de hele database is ingesteld op utf8mb4
. Voor meer informatie over tekensets in MySQL zie:
MySQL-documenten:Tekensets en sorteringen specificeren
MySQL-documenten:De utf8mb4-tekenset (4-Byte UTF-8 Unicode-codering)
Stack Overflow:Wat is het verschil tussen utf8mb4- en utf8-tekensets in MySQL?
Er is trouwens een doorlopend pull-verzoek in Django om utf8mb4
. te maken de standaard:https://github.com/django/django/pull/8886