2017-07-14 46 views
1

我想讓我的django-cms實例來託管多個站點。 爲此,我在管理面板中創建了兩個不同的網站。Django-cms:'設置'對象沒有屬性'SITE_ID'

不幸的是,只顯示一個站點,因爲我需要在項目設置中對SITE_ID進行硬編碼。

根據https://github.com/django/django/pull/2460這不是強制性設置了。但我的Django 1.10.7實例顯示了以下回溯,如果我刪除它:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/var/www/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/var/www/venv/lib/python3.5/site-packages/django/core/management/__init__.py", line 312, in execute 
    django.setup() 
    File "/var/www/venv/lib/python3.5/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/var/www/venv/lib/python3.5/site-packages/django/apps/registry.py", line 115, in populate 
    app_config.ready() 
    File "/var/www/venv/lib/python3.5/site-packages/django/contrib/admin/apps.py", line 22, in ready 
    self.module.autodiscover() 
    File "/var/www/venv/lib/python3.5/site-packages/django/contrib/admin/__init__.py", line 24, in autodiscover 
    autodiscover_modules('admin', register_to=site) 
    File "/var/www/venv/lib/python3.5/site-packages/django/utils/module_loading.py", line 74, in autodiscover_modules 
    import_module('%s.%s' % (app_config.name, module_to_search)) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/var/www/venv/lib/python3.5/site-packages/cms/admin/__init__.py", line 2, in <module> 
    import cms.admin.pageadmin 
    File "/var/www/venv/lib/python3.5/site-packages/cms/admin/pageadmin.py", line 39, in <module> 
    from cms.admin.forms import (
    File "/var/www/venv/lib/python3.5/site-packages/cms/admin/forms.py", line 85, in <module> 
    class PageForm(forms.ModelForm): 
    File "/var/www/venv/lib/python3.5/site-packages/cms/admin/forms.py", line 86, in PageForm 
    language = forms.ChoiceField(label=_("Language"), choices=get_language_tuple(), 
    File "/var/www/venv/lib/python3.5/site-packages/cms/utils/i18n.py", line 76, in get_language_tuple 
    return [(lang['code'], lang['name']) for lang in get_languages(site_id)] 
    File "/var/www/venv/lib/python3.5/site-packages/cms/utils/i18n.py", line 23, in get_languages 
    site_id = get_site_id(site_id) 
    File "/var/www/venv/lib/python3.5/site-packages/cms/utils/conf.py", line 294, in get_site_id 
    return settings.SITE_ID 
    File "/var/www/venv/lib/python3.5/site-packages/django/conf/__init__.py", line 49, in __getattr__ 
    return getattr(self._wrapped, name) 
AttributeError: 'Settings' object has no attribute 'SITE_ID' 

回答

0

我解決了問題不同。我使用的插件djangocms-multisite

我不知道這是否是最好的解決方案,但它的工作原理。

0

貌似是由Django的CMS需要SITE_ID,它在回溯

File "/var/www/venv/lib/python3.5/site-packages/cms/utils/conf.py", line 294, in get_site_id 
    return settings.SITE_ID 
+0

感謝您的回覆。我不確定這一點。該代碼(來自:/var/www/venv/lib/python3.5/site-packages/cms/utils/conf.py)看起來像,如果它不能以其他方式獲取,它只是「最後一個選項」。 –

+0

Hello Tobias,django CMS需要SITE_ID。 – Paulo

相關問題