【问题标题】:WYSIWYG form for users in Django CMSDjango CMS 中用户的所见即所得表单
【发布时间】:2017-07-14 04:43:48
【问题描述】:

最近我开始使用 Django CMS,结果证明它是 Web 开发人员的好工具。但到目前为止我无法实现的一件事是为用户创建一个表单,以便他们可以提交一些使用所见即所得编辑器创建的内容。我想也许有一些简单的方法可以在管理面板中添加可用的编辑器(用于创建/修改文本插件的编辑器),不幸的是似乎不是这样。

长话短说 - 我想让用户使用管理面板中提供的相同 WYISWYG 编辑器,而无需授予他们访问管理面板的权限。可能吗?还是我必须使用一些额外的扩展程序才能在我的页面上嵌入类似的编辑器?

【问题讨论】:

  • django djangopackages.org/grids/g/wysiwyg 的wysiwyg 软件包 - 到目前为止,您尝试过什么使其工作?给我们一些可以合作的东西。
  • 到目前为止,我只是在寻找一个对 django 来说似乎很典型的解决方案,例如包含模板或使用 templatetag。我还试图在 django cms 文档中查找信息,因为它似乎是一个流行的功能。我很惊讶在任何地方都没有描述过这样的事情,无论是在文档中还是在互联网上(我也试图在这里找到类似的问题,但没有运气)。没有尝试过任何实际的编码,我什至不知道安装任何外部编辑器是否有意义。
  • “但到目前为止我无法实现的一件事是为用户创建一个表单,以便他们可以提交一些使用所见即所得编辑器创建的内容。”你想要什么样的形式?如果可用插件(如文本插件)不提供您正在寻找的内容,您可以轻松创建自己的插件,可以放置在页面占位符中。这些插件可以使用与 text-plugin 相同的编辑器来处理它们的 text/html 表单字段。
  • @Max butt 文本插件是从 django 管理面板管理的。我想在页面上有一个可供用户使用的表单,以便该表单由 WYSIWYG 编辑器组成,类似于管理员用来管理 Pages 插件的这个编辑器,或者 - 甚至更好 - 完全相同的编辑器(所以我不必安装额外的扩展)。问题是,如何在没有任何肮脏技巧的情况下做到这一点。

标签: django wysiwyg django-cms web-frontend django-wysiwyg


【解决方案1】:

因此,根据我假设的 cmets,当您说“用户”时,您是指未注册到 CMS 的匿名网站访问者?并且您想向他们显示一个所见即所得的表单字段以“提交一些内容”?

如果我的假设是正确的,您只需要创建一个自己的插件或应用程序。

http://docs.django-cms.org/en/release-3.4.x/how_to/custom_plugins.html

【讨论】:

  • 用户可能登录也可能未登录,但我当然不希望他们访问管理面板。另外,没有比创建插件更简单的方法了吗?
  • 完全不清楚您要达到的目标。内容“提交”后会发生什么?这是自定义功能,只需构建一个合适的插件/应用程序。
  • 考虑一个用户可以发布自己文章的网站。在编写它们之后,使用精美的 WYSIWYG 编辑器,他们像提交任何其他表单一样提交文章,以便应用程序服务器可以使用它,例如,创建一个用作插件的 Article 对象,然后可以将其放在新页面的占位符中。
【解决方案2】:

也许你应该看看divio/djangocms-text-ckeditor。它提供了一个 HTMLField 作为模型的一部分,并提供了一个 TextEditorWidget 作为应用程序表单的一部分。

【讨论】:

  • 我已经使用了另一种解决方案(类似于您要链接的内容,只是使用另一个所见即所得的编辑器),但这看起来也很有希望。但由于这更多是我首先要寻找的,我想我需要将接受的答案更改为你的。
  • 完美。使用与文本插件相同的文本编辑器可能会很方便。
  • 是的,所以这个问题。但由于事实证明它需要完成更多“肮脏的工作”才能正常工作,所以我只选择了第三方编辑器。
猜你喜欢
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 2013-08-13
  • 2022-01-22
  • 1970-01-01
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多