10

I am learning Django, and this is my first project. I am working on this project in this tutorial. https://docs.djangoproject.com/en/1.4/intro/tutorial01/

when I ran syncdb command. tables were created. then it asked me if I want to add a superuser, I said yes. then got following error message. I found a few similar questions on stackoverflow, but still canot get it fixed.

(django)feelexit@ubuntu:~/.virtualenvs/testDjango$ ./manage.py syncdb Creating tables ... Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_user_permissions Creating table auth_user_groups Creating table auth_user Creating table django_content_type Creating table django_session Creating table django_site You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): y Please enter either "yes" or "no": yes Traceback (most recent call last): File "./manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line utility.execute() File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle return self.handle_noargs(**options) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 110, in handle_noargs emit_post_sync_signal(created_models, verbosity, interactive, db) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/sql.py", line 189, in emit_post_sync_signal interactive=interactive, db=db) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 73, in create_superuser call_command("createsuperuser", interactive=True, database=db) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 150, in call_command return klass.execute(*args, **defaults) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 70, in handle default_username = get_default_username() File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 105, in get_default_username default_username = get_system_username() File "/home/feelexit/.virtualenvs/django/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 85, in get_system_username return getpass.getuser().decode(locale.getdefaultlocale()[1]) TypeError: decode() argument 1 must be string, not None 

Update: I am using ubuntu 12.04. I found a possible solution. add following code to manage.py. however there's a disclaimer next to it "I have no idea if this causes any negative side effects.". I am looking for a better way to fix it.

import os os.environ.setdefault('LANG','en_US') 

2 Answers 2

14

This is a bug in the Django code (see the django bug report).

The usual way in the ticket to fix this is to export your shell LANG environment variable.

export LANG="en_US.UTF-8" 

That one works for me on a SuSE setup.

Sign up to request clarification or add additional context in comments.

Comments

3

export LANG="en_US.UTF-8"

Works for me, but a way to do it by editing manage.py, django-admin creates a different directory structure than it used to and I'm moving files like settings.py, urls.py out of the subfolder.

EDIT: os.environ["LANG"]="en_US.UTF-8" (after doing import os)

I used sys.append to add the path to avoid import errors.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.