Django崩溃与异常值:没有这样的表:polls_question_page

时间:2016-02-03 13:34:02

标签: django many-to-many

当我尝试添加多个字段时出现错误:

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

为什么我不能在课堂上添加我的字段“page”问题?为什么我无法访问我的管理员 当我删除这个字段时,有任何担心在我的管理面板中看到类问题,但我会在页面上添加一个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

1 个答案:

答案 0 :(得分:1)

这意味着django模型与您的数据库不同步,您必须制作并运行迁移。

manage.py showmigrations

运行以下管理命令:

manage.py migrate polls 0004

如果这不起作用,则必须修复数据库

获取应该应用哪些迁移的列表

manage.py migrate polls 0004 --fake

仔细阅读应用程序“民意调查”的迁移来源,找出尚未应用的内容。然后,您可以在迁移之前回滚。假设您要回滚到名为“0004_something_something”的迁移

manage.py migrate polls

如果出现错误,您可以fake it

reset_db

然后重新运行迁移。

{{1}}

希望这能解决所有问题。如果没有,您可能想重新开始使用空数据库。

完全重置数据库的最简单方法可能是程序包django-extensions中的{{1}}命令。

  

reset_db - 重置数据库(目前为sqlite3,mysql,postgres)。   使用“DROP DATABASE”和“CREATE DATABASE”。

相关问题