繁体   English   中英

django.db.utils.OperationalError:没有这样的表:django_site

[英]django.db.utils.OperationalError: no such table: django_site

在Django 1.7中运行python manage.py syncdb时出现错误

我正在使用Python2.7,但在Python 3.4.3中得到了完全相同的错误

$ python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/debug_toolbar/apps.py", line 15, in ready
    dt_settings.patch_all()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/debug_toolbar/settings.py", line 232, in patch_all
    patch_root_urlconf()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/debug_toolbar/settings.py", line 220, in patch_root_urlconf
    reverse('djdt:render_panel')
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/urlresolvers.py", line 522, in reverse
    app_list = resolver.app_dict[ns]
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/urlresolvers.py", line 329, in app_dict
    self._populate()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/urlresolvers.py", line 269, in _populate
    for pattern in reversed(self.url_patterns):
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/urlresolvers.py", line 372, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/core/urlresolvers.py", line 366, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/Users/HK/anaconda/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/HK/website/mor36/src/mor36/urls.py", line 13, in <module>
    url(r'^admin/', include(admin.site.urls)),
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 262, in urls
    return self.get_urls(), self.app_name, self.name
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 246, in get_urls
    url(r'^%s/%s/' % (model._meta.app_label, model._meta.model_name), include(model_admin.urls))
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/contrib/admin/options.py", line 598, in urls
    return self.get_urls()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/cms/admin/pageadmin.py", line 139, in get_urls
    url_patterns += super(PageAdmin, self).get_urls()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/cms/admin/placeholderadmin.py", line 121, in get_urls
    from cms.urls import SLUG_REGEXP
  File "/Users/HK/anaconda/lib/python2.7/site-packages/cms/urls.py", line 20, in <module>
    urlpatterns = get_app_patterns()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/cms/appresolver.py", line 196, in get_app_patterns
    current_site = Site.objects.get_current()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/contrib/sites/models.py", line 54, in get_current
    current_site = self.get(pk=sid)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/manager.py", line 92, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/query.py", line 351, in get
    num = len(clone)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/query.py", line 122, in __len__
    self._fetch_all()
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/query.py", line 966, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/query.py", line 265, in iterator
    for row in compiler.results_iter():
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 701, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 787, in execute_sql
    cursor.execute(sql, params)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/backends/utils.py", line 81, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/Users/HK/anaconda/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 485, in execute
    return Database.Cursor.execute(self, query, params)
**django.db.utils.OperationalError: no such table: django_site**

我可以看到您正在使用django-CMS,遇到了同样的问题。 我可以假设较新版本的Django可能存在问题。

根本原因是尚未创建Django表,但cms尝试引用它们(特别是从Sites框架获取当前站点)

那不是以前版本的Django中的问题,因为您通常会执行python manage.py sycndb (至少在Django 1.9中已删除),并且该命令创建了所有django表。

因此,要解决此问题-您需要在settings.py注释掉与django CMS相关的所有内容,运行python manage.py migrate来迁移Django表,然后取消注释cms的内容并再次迁移,那么这应该不是问题不再。 (有时,它还有助于注释已安装的应用程序中的当前项目以及cms内容,以便Django 1.9进行检查不会检查您的urls.py,其中包含与cms相关的条目)。

如果您在Django <1.9但> 1.7上遇到相同的问题,请尝试首先执行syncdb。

希望对遇到类似问题的任何人有所帮助。

如果尚不存在,请将以下内容添加到settings.py中的INSTALLED_APPS属性:

'django.contrib.sites'

并在settings.py中也添加SITE_ID = 1

在Django 1.7+中,进行数据库更改的首选方法是使用migration management命令:

./manage.py migrate

那应该解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM