Modelのverbose_name
modelのverbose_nameに、次のようにunicode文字列を指定して
class Person(models.Model):
class Meta:
verbose_name = u'社員'
class Admin:
pass
syncdbを実行すると、
python manage.py syncdb
こんなエラーが発生します。
Traceback (most recent call last):
File "manage.py", line 11, in ?execute_manager(settings)
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\core\management.py", line 1319, in execute_manager
execute_from_command_line(action_mapping, argv)
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\core\management.py", line 1243, in execute_from_command_line
action_mapping[action]()
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\core\management.py", line 491, in syncdb
app=app, created_models=created_models)
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\dispatch\dispatcher.py", line 347, in send
sender=sender,
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\dispatch\robustapply.py", line 47, in robustApply
return receiver(*arguments, **named)
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\contrib\auth\management.py", line 26, in create_permissions
ctype = ContentType.objects.get_for_model(klass)
File "C:\Python24\lib\site-packages\django-0.95-py2.4.egg\django\contrib\contenttypes\models.py", line 14, in get_for_model
model=opts.object_name.lower(), defaults={'name': str(opts.verbose_name)})
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
環境は次のとおりです。
- Django:0.95.1
- Python:2.4
- MySQLdb:1.2.0
- MySQL:5.0.27-community-nt
- OS:Windows XP Home Edition
MySQL側は、サーバ、データベース、テーブルともutf8を使う設定にしてあります。