Если в ответ на одну из нижеследующих команд:
manage.py syncdb manage.py createsuperuser
Django начинает дико ругаться на непонятном языке:
django.db.utils.DatabaseError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
значит Вы пытаетесь работать в Windows и ваш текущий пользователь имеет русскоязычное наименование.
Все дело в том, что авторы Django не задумывались, что имя пользователя системы может содержать совсем не латинские символы. При создании суперюзера джанга пытается сумничать, предлагая умолчательное имя суперюзера, которое соответствует имени текущего пользователя системы. Если текущий пользователь обозван по-пиндосски, проблем не возникает. Если же Ваш аккаунт называется "Василий Батькович Пупкин", то джанга пережить этого уже не может и скоропостижно умирает.
Куда бежать? Что делать?
Можно воспользоваться замечательным способом monkey patching. Берем и редактируем файл ядра джанги createsuperuser.py. У меня он расположен в папке:
c:\Python27\Lib\site-packages\django\contrib\auth\management\commands\
Ищем по файлу подстроку "username=default_username". Для версии Django 1.3 искомое находится в 72 строке кода. Заменяем старый код:
User.objects.get(username=default_username)
на новый:
User.objects.get(username=default_username.decode('cp1251'))Усе.