Django 崩溃并显示异常值:没有这样的 table:polls_question_page
Django crashes with Exception Value: no such table: polls_question_page
当我尝试添加多对多字段时出现错误:
page = models.ManyToManyField(Page)
我收到此错误:no such table: polls_question_page
class Page(models.Model):
title = models.CharField(max_length=30)
def __str__(self):
return self.title
class Question(models.Model):
label = models.CharField(max_length=30)
page = models.ManyToManyField(Page)
def __str__(self):
return self.label
class Reply(models.Model):
question = models.ForeignKey(Question)
user = models.ForeignKey(Personne)
answer = models.CharField(max_length=30)
creationDate = models.DateTimeField(default=timezone.now(),blank=True, verbose_name="Date de création")
def __str__(self):
return str(self.answer)
回溯:
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py" in execute
323. return Database.Cursor.execute(self, query, params)
The above exception (no such table: polls_question_page) was the direct cause of the following exception:
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in wrapper
541. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/sites.py" in inner
244. return view(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in change_view
1438. return self.changeform_view(request, object_id, form_url, extra_context)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/lib/python3.4/contextlib.py" in inner
30. return func(*args, **kwds)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in changeform_view
1395. form = ModelForm(instance=obj)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/forms/models.py" in __init__
282. object_data = model_to_dict(instance, opts.fields, opts.exclude)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/forms/models.py" in model_to_dict
105. data[f.name] = list(qs.values_list('pk', flat=True))
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in __iter__
258. self._fetch_all()
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in _fetch_all
1074. self._result_cache = list(self.iterator())
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in __iter__
158. for row in compiler.results_iter():
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in results_iter
802. results = self.execute_sql(MULTI)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in execute_sql
848. cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
79. return super(CursorDebugWrapper, self).execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/utils.py" in __exit__
95. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/six.py" in reraise
685. raise value.with_traceback(tb)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py" in execute
323. return Database.Cursor.execute(self, query, params)
Exception Type: OperationalError at /admin/polls/question/4/change/
Exception Value: no such table: polls_question_page
为什么我不能在 class 问题中添加字段 "page"?为什么我无法访问我的管理员
当我删除这些字段时,我会担心在我的管理面板中看到 class 问题,但我会在页面上添加 ManyToMany 键 ...
我加入另一个做什么?
编辑:
当我 运行 : python manage.py makemigrations
/home/nicolas/webtrial/dev/lib/python3.4/site-packages/grappelli/urls.py:21: RemovedInDjango110Warning: django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.
url(r'^switch/user/(?P<object_id>\d+)/$', switch_user, name="grp_switch_user"),
System check identified some issues:
WARNINGS:
polls.Message.pub_date: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`
polls.Reply.creationDate: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`
No changes detected
这意味着 django 模型和您的数据库不同步,您必须进行 运行 迁移。
Exception Value: no such table: polls_question_page
运行 这些管理命令:
manage.py makemigrations && manage.py migrate
如果这不起作用,您将不得不修复数据库
获取应该应用的迁移列表
manage.py showmigrations
通读应用程序的迁移源 "polls" 并找出哪些未应用。然后您可以回滚到迁移之前。假设您想回滚到名为“0004_something_something”
的迁移
manage.py migrate polls 0004
如果有错误你可以fake it.
manage.py migrate polls 0004 --fake
然后您重新运行 迁移。
manage.py migrate polls
希望这会解决所有问题。如果没有,您可能想从一个空数据库重新开始。
完全重置数据库的最简单方法可能是 django-extensions.
包中的命令 reset_db
reset_db - Resets a database (currently sqlite3, mysql, postgres).
Uses “DROP DATABASE” and “CREATE DATABASE”.
当我尝试添加多对多字段时出现错误:
page = models.ManyToManyField(Page)
我收到此错误:no such table: polls_question_page
class Page(models.Model):
title = models.CharField(max_length=30)
def __str__(self):
return self.title
class Question(models.Model):
label = models.CharField(max_length=30)
page = models.ManyToManyField(Page)
def __str__(self):
return self.label
class Reply(models.Model):
question = models.ForeignKey(Question)
user = models.ForeignKey(Personne)
answer = models.CharField(max_length=30)
creationDate = models.DateTimeField(default=timezone.now(),blank=True, verbose_name="Date de création")
def __str__(self):
return str(self.answer)
回溯:
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py" in execute
323. return Database.Cursor.execute(self, query, params)
The above exception (no such table: polls_question_page) was the direct cause of the following exception:
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in wrapper
541. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/sites.py" in inner
244. return view(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in change_view
1438. return self.changeform_view(request, object_id, form_url, extra_context)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/lib/python3.4/contextlib.py" in inner
30. return func(*args, **kwds)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/contrib/admin/options.py" in changeform_view
1395. form = ModelForm(instance=obj)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/forms/models.py" in __init__
282. object_data = model_to_dict(instance, opts.fields, opts.exclude)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/forms/models.py" in model_to_dict
105. data[f.name] = list(qs.values_list('pk', flat=True))
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in __iter__
258. self._fetch_all()
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in _fetch_all
1074. self._result_cache = list(self.iterator())
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/query.py" in __iter__
158. for row in compiler.results_iter():
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in results_iter
802. results = self.execute_sql(MULTI)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in execute_sql
848. cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
79. return super(CursorDebugWrapper, self).execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/utils.py" in __exit__
95. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/utils/six.py" in reraise
685. raise value.with_traceback(tb)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/home/nicolas/webtrial/dev/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py" in execute
323. return Database.Cursor.execute(self, query, params)
Exception Type: OperationalError at /admin/polls/question/4/change/
Exception Value: no such table: polls_question_page
为什么我不能在 class 问题中添加字段 "page"?为什么我无法访问我的管理员 当我删除这些字段时,我会担心在我的管理面板中看到 class 问题,但我会在页面上添加 ManyToMany 键 ...
我加入另一个做什么?
编辑:
当我 运行 : python manage.py makemigrations
/home/nicolas/webtrial/dev/lib/python3.4/site-packages/grappelli/urls.py:21: RemovedInDjango110Warning: django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.
url(r'^switch/user/(?P<object_id>\d+)/$', switch_user, name="grp_switch_user"),
System check identified some issues:
WARNINGS:
polls.Message.pub_date: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`
polls.Reply.creationDate: (fields.W161) Fixed default value provided.
HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`
No changes detected
这意味着 django 模型和您的数据库不同步,您必须进行 运行 迁移。
Exception Value: no such table: polls_question_page
运行 这些管理命令:
manage.py makemigrations && manage.py migrate
如果这不起作用,您将不得不修复数据库
获取应该应用的迁移列表
manage.py showmigrations
通读应用程序的迁移源 "polls" 并找出哪些未应用。然后您可以回滚到迁移之前。假设您想回滚到名为“0004_something_something”
的迁移manage.py migrate polls 0004
如果有错误你可以fake it.
manage.py migrate polls 0004 --fake
然后您重新运行 迁移。
manage.py migrate polls
希望这会解决所有问题。如果没有,您可能想从一个空数据库重新开始。
完全重置数据库的最简单方法可能是 django-extensions.
包中的命令reset_db
reset_db - Resets a database (currently sqlite3, mysql, postgres). Uses “DROP DATABASE” and “CREATE DATABASE”.