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')
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With