簡體   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