0

djnago1.3.1 python2.7.2+ ubuntu 11.10 我正在制作syncdb,在创建超级用户后我遇到了这个错误:

 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): yes
    Username (Leave blank to use 'root'): antonio
    E-mail address: mr.antonsilin@gmail.com
    Password: 
    Password (again): 
    Superuser created successfully.
    Traceback (most recent call last):
      File "manage.py", line 14, in <module>
        execute_manager(settings)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
        utility.execute()
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from_argv
        self.execute(*args, **options.__dict__)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 220, in execute
        output = self.handle(*args, **options)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 351, in handle
        return self.handle_noargs(**options)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 109, in handle_noargs
        emit_post_sync_signal(created_models, verbosity, interactive, db)
      File "/usr/local/lib/python2.7/dist-packages/django/core/management/sql.py", line 190, in emit_post_sync_signal
        interactive=interactive, db=db)
      File "/usr/local/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 172, in send
        response = receiver(signal=self, sender=sender, **named)
      File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/management/__init__.py", line 30, in create_permissions
        ctype = ContentType.objects.get_for_model(klass)
      File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py", line 38, in get_for_model
        defaults = {'name': smart_unicode(opts.verbose_name_raw)},
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 135, in get_or_create
        return self.get_query_set().get_or_create(**kwargs)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 385, in get_or_create
        obj.save(force_insert=True, using=self.db)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 460, in save
        self.save_base(using=using, force_insert=force_insert, force_update=force_update)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 553, in save_base
        result = manager._insert(values, return_id=update_pk, using=using)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 195, in _insert
        return insert_query(self.model, values, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1436, in insert_query
        return query.get_compiler(using=using).execute_sql(return_id)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 791, in execute_sql
        cursor = super(SQLInsertCompiler, self).execute_sql(None)
      File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 735, in execute_sql
        cursor.execute(sql, params)
      File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py", line 34, in execute
        return self.cursor.execute(sql, params)
      File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 86, in execute
        return self.cursor.execute(query, args)
      File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 176, in execute
        if not self._defer_warnings: self._warning_check()
      File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 92, in _warning_check
        warn(w[-1], self.Warning, 3)
    _mysql_exceptions.Warning: Incorrect string value: '\xD0\xA0\xD0\xB5\xD0\xB3...' for column 'name' at row 1

请帮忙=)

4

1 回答 1

2

该字符串看起来像一个 utf-8 编码的字符串。如果您的数据库是 latin-1 编码的(默认情况下通常是 mysql),那么这可能是您的麻烦之源。

检查数据库的字符编码。方法如下

还要检查你的 python 解释器的默认编码:

sys.getdefaultencoding()

如果这是您正在处理的全新数据库,那么从一开始就将其作为 utf-8 可能是个好主意。

CREATE DATABASE new_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
于 2012-01-24T16:27:12.497 回答