twitter-bootstrap-3 - “页面”对象没有属性“site_id”
问题描述
我正在使用 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'
解决方案
编辑此文件并注释第 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
--> 拉斐尔·乔纳德 | 网络性能加速器 <--
推荐阅读
- powershell - Powershell GPO 登录脚本检查 AD 资源组成员身份
- python - Python GTK+ 3:如何制作圆形按钮?
- c++ - 在集合上运行的函数模板,它有一个默认的“转换”函数,它什么都不做
- javascript - javascript/node.js 中的休眠功能
- java - 平衡三个参数,这样当其中一个变化时,数量不变
- oracle11g - Nifi 将 Oracle 日期转换为时间戳毫秒并添加 00:00:00
- node.js - Nodejs在发送大量请求时请求ETIMEDOUT
- ruby-on-rails - 带条件的 Mongoid 聚合
- java - 使用 Spring 3.0.4 启用 Cors
- delegates - 获取所有用户的委派访问用户列表