我正在使用Django cms建立一个全新的网站,并且正在使用aldryn_bootstrap3
。
当我创建链接/按钮时,我的网站似乎坏了。我得到:
File "c:\newCMS\venv37\lib\site-packages\aldryn_bootstrap3\model_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:\newCMS\venv37\lib\site-packages\aldryn_bootstrap3\templates\aldryn_bootstrap3\plugins\button.html, error at line 2
跟踪:
File "c:\newCMS\venv37\lib\site-packages\aldryn_bootstrap3\model_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'
答案 0 :(得分:0)
编辑此文件并注释行172/173/174(根据您的情况)
$ c:\ newCMS \ 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:\ newCMS \ 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
->拉斐尔·乔纳德(RaphaëlJonard)| Web Performance Accelerator <-
答案 1 :(得分:0)
编辑文件: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):