【问题标题】:Django CMS - cookie cutter : The form could not be loaded. Please check that the server is running correctlyDjango CMS - 千篇一律:无法加载表单。请检查服务器是否正常运行
【发布时间】:2020-01-14 12:06:37
【问题描述】:

我开始在一家公司学习 Web 开发,任务是在 cookiecutter django 中制作一个简单的应用程序,然后将 django-cms 集成到其中。

我使用 django cookie-cutter 启动一个项目,然后按照本指南将 django-cms 集成到项目中:

https://github.com/pydanny/cookiecutter-django

http://docs.django-cms.org/en/latest/how_to/install.html

在经历了一些最初的麻烦之后,我设法让它开始了。 之后,下一步是将我的“投票”应用程序添加到项目中,并将 Django CMS 也集成到其中。

为此,我遵循了本教程:

http://docs.django-cms.org/en/latest/introduction/03-integrating_applications.html#incorporate-the-polls-application

我设法一直走到最后一个链接的末尾,然后在第 6 步,发生了这种情况。

每次我尝试从我的站点中删除插件时,或者当我单击 CMS 工具栏上的创建时,我都会收到此错误(注意:如果我登录到 /admin,我可以创建页面,但不能通过 cms实际网站上的菜单栏):

The form could not be loaded. Please check that the server is running correctly.

服务器很好。那里没有错误。

在控制台中:

Refused to display 'http://127.0.0.1:8000/cms_wizard/create/?page=5&language=en&edit&cms_path=/home/?edit&language=en&structure' in a frame because it set 'X-Frame-Options' to 'deny'.

bundle.toolbar.min.js:1 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

过去两天我一直在谷歌上搜索,但我无法弄清楚。 任何帮助将不胜感激!

我已经在我的github上推送了我更改的文件,如果您需要任何其他信息,请告诉我,我会立即提供。

https://github.com/sandilukez/cms-django-cookie

我尝试了所有可以在网上找到的东西,但没有成功!

【问题讨论】:

  • 您使用的是什么版本的 django 和 django-cms? Cookie 切割器谈论使用 django 2.2,但 CMS 目前不支持 2.2。该支持将在下一个版本 3.7 中提供。
  • 我实际使用的是 2.2,不知道!

标签: django content-management-system django-cms cookiecutter


【解决方案1】:

分析器于 2021 年 7 月 11 日更新

我成功解决了这个问题,感谢@user2135738

版本:

你的 django 项目中的 settings.py 文件

#django cms allow all
X_FRAME_OPTIONS = "ALLOWALL"
XS_SHARING_ALLOWED_METHODS = ["POST", "GET", "OPTIONS", "PUT", "DELETE"]

【讨论】:

    【解决方案2】:

    上面的答案很接近,至少在问题所在的地方,但答案X_FRAME_OPTIONS = "ALLOWALL" 可能会导致安全问题。 正如 django 文档中提到的那样

    现代浏览器支持 X-Frame-Options HTTP 标头,该标头指示是否允许在框架或 iframe 中加载资源。如果响应包含值为 SAMEORIGIN 的标头,则浏览器只会在请求来自同一站点的情况下将资源加载到框架中。

    为了让 django cms 能够在网站内打开 iframe,我们应该在设置中输入 X_FRAME_OPTIONS = 'SAMEORIGIN'。这样我们就不允许其他网站将我们的网站包含为 iframe,而是让 django cms 正常工作。 欲了解更多信息,这里是相关文档:https://docs.djangoproject.com/en/3.1/ref/clickjacking/

    【讨论】:

      【解决方案3】:

      我猜这类似于this。您可能在控制台中遇到相同的错误吧?

      因此,您应该在 settings/local.py 中添加以下内容:

      X_FRAME_OPTIONS = "ALLOWALL"
      XS_SHARING_ALLOWED_METHODS = ["POST", "GET", "OPTIONS", "PUT", "DELETE"]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-21
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多