我正在使用Django cms构建一个全新的网站,我正在使用aldryn_bootstrap3
。
当我创建链接/按钮时,我的网站似乎坏了。我得到:
File "c:newCMSvenv37libsite-packagesaldryn_bootstrap3model_fields.py", line 172, in get_link_url
if ref_page.site_id != getattr(cms_page, 'site_id', None):
AttributeError: 'Page' object has no attribute 'site_id'
我尝试安装多站点模块(我在论坛中看到它适用于其他人......
然后,我seetings.py
中的配置是:
from multisite import SiteID
SITE_ID = SiteID(default=1)
环境:
Request Method: GET
Request URL: http://localhost:8000/es/?edit&language=es
Django Version: 1.11.22
Python Version: 3.7.3
Installed Applications:
...
'django.contrib.sites',
'aldryn_bootstrap3',
'multisite',
'djangocms_multisite',
'MyCMS']
模板呈现期间出错:
In template c:newCMSvenv37libsite-packagesaldryn_bootstrap3templatesaldryn_bootstrap3pluginsbutton.html, error at line 2
追踪:
File "c:newCMSvenv37libsite-packagesaldryn_bootstrap3model_fields.py" in get_link_url
172. if ref_page.site_id != getattr(cms_page, 'site_id', None):
Exception Type: AttributeError at /es/
Exception Value: 'Page' object has no attribute 'site_id'
编辑此文件并注释行 172/173/174(在您的情况下(
$ c:ewCMS\venv37\lib\site-packages\aldryn_bootstrap3\model_fields.py
#if ref_page.site_id != getattr(self.page, 'site_id', None):
#ref_site = Site.objects._get_site_by_id(ref_page.site_id)
#link = '//{}{}'.format(ref_site.domain, link)
然后返回GUI并删除导致问题的"链接按钮">
再次打开文件"model_fields.py"并取消注释 3 行。然后重启实例
$ c:ewCMS\venv37\lib\site-packages\aldryn_bootstrap3\model_fields.py
if ref_page.site_id != getattr(self.page, 'site_id', None):
ref_site = Site.objects._get_site_by_id(ref_page.site_id)
link = '//{}{}'.format(ref_site.domain, link)
!!这不是一个最终的解决方案,但它可以让您的网站再次运行
在 Debian/Ubuntu 服务器上,编辑并注释此文件
$ sudo vim/usr/local/lib/python3.6/site-packages/aldryn_bootstrap3/model_fields.py
-->·拉斐尔·乔纳德 |Web Performances Accelerator <--<</p>
编辑文件:aldryn_bootstrap3/model_fields.py
替换第 169 行,如下所示:
if ref_page.site_id != getattr(self.page, 'site_id', None):
跟:
if ref_page.node.site_id != getattr(self.page.node, 'site_id', None):