在 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',
}
}
如果需要更多信息 - 请告诉我,我会更新票证。
谢谢