【问题标题】:'Page' object has no attribute 'site_id'“页面”对象没有属性“site_id”
【发布时间】:2019-11-26 03:13:13
【问题描述】:

我正在使用 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'

【问题讨论】:

  • django-cms 是什么版本,aldryn_bootstrap3 是什么版本?

标签: twitter-bootstrap-3 django-cms attributeerror linkbutton


【解决方案1】:

编辑此文件并注释第 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

--> 拉斐尔·乔纳德 |网络性能加速器

【讨论】:

    【解决方案2】:

    编辑文件: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):
    

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多