[Django3.0]ユーザの名前変更時にIncorrect string value

mysqlとの接続の問題だと思って、settings.pyのDATABASEで’charset’: ‘utf8mb4’,を追加するも治らず。

### 試した事
views.py でユーザ作成時(User.objects.create_user)に以下の様にエンコードして呼び出すときにdecodeしようとした。

views.py

first_name = request.POST['first_name'].encode('unicode_escape')
last_name = request.POST['last_name'].encode('unicode_escape')

### 問題点
– admin管理ツールからユーザの姓名を日本語で設定しようとすると、Incorrect string valueのエラーになるので、views.pyで.encode(‘unicode_escape’)としても根本的な解決にならない
– 更に、views.pyで以下の様にbyte型に変えてデコードしようとしたが、template側で日本語で表示できず、なんどやってもエンコードされた b’\\u592a\\u90ce’、b’\\u5c71\\u7530′ で表示される

data = User.objects.all()
	i = 0
	for item in data:
		data[i].first_name = item.first_name.encode().decode('unicode-escape')
		data[i].last_name = item.last_name.encode().decode('unicode-escape')
		i += 1

かなり色々試したが、、、

### 解決策
mysql側

mysql> ALTER TABLE auth_user CONVERT TO CHARACTER SET utf8mb4;

これだけ。これで、admin管理ツールからユーザの姓名も日本語に変更できる様になった。
なんですと!!!