1

在 pythonanywhere.com 上部署测试托管和设置 MySQL 数据库后,我遇到了一个问题。当我尝试使用我的超级用户登录管理员时,我收到此错误:

  Environment:


Request Method: POST
Request URL: http://studs.pythonanywhere.com/admin/login/?next=/admin/

Django Version: 1.9.7
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'rest_framework.authtoken',
 'rest_framework_docs',
 'mainapp']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
  323.         return Database.Cursor.execute(self, query, params)

The above exception (no such table: auth_user) was the direct cause of the following exception:

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  149.                     response = self.process_exception_by_middleware(e, request)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/admin/sites.py" in login
  414.         return login(request, **defaults)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/views.py" in inner
  49.         return func(*args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
  76.             return view(request, *args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
  149.                     response = view_func(request, *args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/views.py" in login
  69.         if form.is_valid():

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/forms/forms.py" in is_valid
  161.         return self.is_bound and not self.errors

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/forms/forms.py" in errors
  153.             self.full_clean()

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/forms/forms.py" in full_clean
  363.         self._clean_form()

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/forms/forms.py" in _clean_form
  390.             cleaned_data = self.clean()

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/forms.py" in clean
  161.                                            password=password)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/__init__.py" in authenticate
  74.             user = backend.authenticate(**credentials)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/backends.py" in authenticate
  17.             user = UserModel._default_manager.get_by_natural_key(username)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/contrib/auth/base_user.py" in get_by_natural_key
  45.         return self.get(**{self.model.USERNAME_FIELD: username})

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/manager.py" in manager_method
  122.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/query.py" in get
  381.         num = len(clone)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/query.py" in __len__
  240.         self._fetch_all()

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/query.py" in _fetch_all
  1074.             self._result_cache = list(self.iterator())

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/query.py" in __iter__
  52.         results = compiler.execute_sql()

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/models/sql/compiler.py" in execute_sql
  848.             cursor.execute(sql, params)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/utils.py" in __exit__
  95.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/utils/six.py" in reraise
  685.             raise value.with_traceback(tb)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/home/studs/.virtualenvs/Studsvenv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" in execute
  323.         return Database.Cursor.execute(self, query, params)

**Exception Type: OperationalError at /admin/login/
Exception Value: no such table: auth_user**

所以这就是我所做的:

  • 从 github 拉我的应用程序
  • 创建了 virtualenv 并安装了所有需要的应用程序
  • 设置wsgi.py
  • 收集的静态文件
  • 设置 MySQL db 并在 settings.py 中更改 DATABASE
  • 移民
  • 迁移
  • 创建超级用户

所有步骤都已完成,没有弹出任何错误。

所以现在当我去 /admin/ 并尝试使用超级用户登录时出现错误。

请解释我做错了什么以及如何解决问题。另外我认为值得一提的是,我用我自己的 ProfileModel 扩展了 User 模型。

这是我的 settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'studs$maindb',
        'USER': 'studs',
        'PASSWORD': 'XXXXXXXX',
        'HOST': 'studs.mysql.pythonanywhere-services.com',
    }
}

如果需要更多信息 - 请告诉我,我会更新票证。

谢谢

4

1 回答 1

0

我通过迁移到包含扩展 django User 模型的 profilemodel 的应用程序解决了这个问题,然后迁移了 db。

于 2016-11-20T15:01:16.707 回答