Imposta il charset
opzione per utf8mb4
nelle OPTIONS
dict delle DATABASES
impostazione nel file delle impostazioni di 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
}
}
}
Queste opzioni verranno passate come argomenti alla funzione di connessione del driver mysql, che in genere è mysqlclient
. Qui puoi vedere nella documentazione tutti questi parametri:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -attributi
Se utilizzi un diverso driver per mysql, tuttavia, potresti aver bisogno di un'opzione diversa.
Assicurati inoltre che nel database MySQL, il charset della colonna, della tabella o dell'intero database sia impostato su utf8mb4
. Per ulteriori informazioni sui set di caratteri in MySQL, vedere:
Documenti MySQL:Specifica di set di caratteri e regole di confronto
Documenti MySQL:Il set di caratteri utf8mb4 (codifica Unicode UTF-8 a 4 byte)
Stack Overflow:Qual è la differenza tra i set di caratteri utf8mb4 e utf8 in MySQL?
C'è tra l'altro una richiesta pull in corso in Django per fare utf8mb4
l'impostazione predefinita:https://github.com/django/django/pull/8886