为什么我看到这个错误

时间:2012-03-06 10:45:08

标签: django

我正在测试django-userena演示项目。我已经安装了sendmail。

我在注册时看到此错误:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/signup/

Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'easy_thumbnails',
 'guardian',
 'south',
 'userena',
 'userena.contrib.umessages',
 'demo_project.profiles']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'userena.middleware.UserenaLocaleMiddleware')


Traceback:
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/decorators.py" in _wrapped_view
  28.         return view_func(request, *args, **kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/views.py" in signup
  69.         if form.is_valid():
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/forms/forms.py" in is_valid
  121.         return self.is_bound and not bool(self.errors)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/forms/forms.py" in _get_errors
  112.             self.full_clean()
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/forms/forms.py" in full_clean
  267.         self._clean_fields()
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/forms/forms.py" in _clean_fields
  287.                     value = getattr(self, 'clean_%s' % name)()
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/forms.py" in clean_username
  49.             user = User.objects.get(username__iexact=self.cleaned_data['username'])
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/manager.py" in get
  132.         return self.get_query_set().get(*args, **kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/query.py" in get
  344.         num = len(clone)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/query.py" in __len__
  82.                 self._result_cache = list(self.iterator())
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/query.py" in iterator
  273.         for row in compiler.results_iter():
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in results_iter
  680.         for rows in self.execute_sql(MULTI):
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  735.         cursor.execute(sql, params)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
  34.             return self.cursor.execute(sql, params)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  86.             return self.cursor.execute(query, args)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute
  174.             self.errorhandler(self, exc, value)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler
  36.     raise errorclass, errorvalue

Exception Type: DatabaseError at /accounts/signup/
Exception Value: (1146, "Table 'demo_project.auth_user' doesn't exist")

修改

抱歉我之前无法更新此问题,我很忙,当我运行syncdb时,我看到此错误

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/signup/

Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'easy_thumbnails',
 'guardian',
 'south',
 'userena',
 'userena.contrib.umessages',
 'demo_project.profiles']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'userena.middleware.UserenaLocaleMiddleware')


Traceback:
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/decorators.py" in _wrapped_view
  28.         return view_func(request, *args, **kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/views.py" in signup
  70.             user = form.save()
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/forms.py" in save
  86.                                                      userena_settings.USERENA_ACTIVATION_REQUIRED)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/managers.py" in create_user
  62.         userena_profile = self.create_userena_profile(new_user)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/userena/managers.py" in create_userena_profile
  104.                            activation_key=activation_key)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/manager.py" in create
  138.         return self.get_query_set().create(**kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/query.py" in create
  360.         obj.save(force_insert=True, using=self.db)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/base.py" in save
  460.         self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  553.                     result = manager._insert(values, return_id=update_pk, using=using)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/manager.py" in _insert
  195.         return insert_query(self.model, values, **kwargs)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/query.py" in insert_query
  1436.     return query.get_compiler(using=using).execute_sql(return_id)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  791.         cursor = super(SQLInsertCompiler, self).execute_sql(None)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  735.         cursor.execute(sql, params)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
  34.             return self.cursor.execute(sql, params)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  86.             return self.cursor.execute(query, args)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute
  174.             self.errorhandler(self, exc, value)
File "/home/elie/.django-projects/showpill/local/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler
  36.     raise errorclass, errorvalue

Exception Type: DatabaseError at /accounts/signup/
Exception Value: (1146, "Table 'demo_project.userena_userenasignup' doesn't exist")

第二次编辑

这是syncdb

的输出
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.admin
 > south
 > demo_project.profiles

Not synced (use migrations):
 - easy_thumbnails
 - guardian
 - userena
 - userena.contrib.umessages
(use ./manage.py migrate to migrate these)

这是./manage.py migrate

的输出
Running migrations for easy_thumbnails:
- Nothing to migrate.
 - Loading initial data for easy_thumbnails.
No fixtures found.
Running migrations for guardian:
- Nothing to migrate.
 - Loading initial data for guardian.
No fixtures found.
Running migrations for userena:
- Nothing to migrate.
 - Loading initial data for userena.
No fixtures found.
Running migrations for umessages:
- Nothing to migrate.
 - Loading initial data for umessages.
No fixtures found.

请注意,尽管我看到错误,但用户名和电子邮件仍保存在数据库中。

如果我登录,则会显示your account has been disabled

如果我尝试重置密码,则说

That e-mail address doesn't have an associated user account. Are you sure you've registered?

2 个答案:

答案 0 :(得分:5)

您需要运行syncdb:manage.py syncdb

你已经知道你还需要使用各种南方命令。

现在出现了两个问题:你是否在南方奔跑后仍然遇到这些错误(我猜你是这样);第二,错误消息(Exception Value: (1146, "Table 'demo_project.userena_userenasignup' doesn't exist"))中指定的表是否确实存在?检查数据库以确定表是否存在,如果存在,则检查是否存在于正确的数据库中。

答案 1 :(得分:3)

我认为你需要删除你的数据库。然后在新数据库上再次执行manage.py syncdbmanage.py migrate。当您运行manage.py migrate时,它不应该为您提供您发布的输出。您的输出不会更改或创建任何表,这可能是问题。也许你还没有创建所需的表格。

  1. This is what the output should look like after a manage.py syncdb.
  2. This is what the output should look like after a manage.py migrate.
  3. 使用userena提供的demo_project共有21个表。


    要获得一般帮助,应该让这个项目有效。

    1. 创建虚拟环境并pip install django-userena
    2. 拉出userena
    3. 附带的demo_project
    4. 激活virtualenv,cd到项目目录并执行manage.py syncdbmanage.py migrate
    5. 运行项目

    6. 我现在已经完成了这项工作,并且可以确认demo_project如果完成这些步骤将会起作用。

      *请记住,如果您在/accounts/signup/页面上注册用户。该用户默认情况下无法登录/admin/。除非您在管理员中为他提供个人资料,否则您的超级用户用户将无法访问/accounts/(profile)/下的个人资料。