【问题标题】:Allowing users to edit page content in Django website允许用户在 Django 网站中编辑页面内容
【发布时间】:2014-12-10 15:20:22
【问题描述】:

我有一个 Django 驱动的网站,就像一个迷你 CMS。我想让没有 HTML 知识的用户编辑页面的内容。问题是大多数页面中都有一些或多或少复杂的 HTML 位(例如 Bootstrap 手风琴),这些位需要完好无损才能使页面不中断。

我尝试设置 WYSIWYG 编辑器,但结果证明是一场灾难,因为它严重改变了我的 HTML(删除属性、添加 p 标记等等)。

是否有一个可行的选项让人们更改页面的文本,而不是 HTML 结构?

作为参考,我的Page 模型看起来像:

class Page(models.Model):
    title = models.CharField(max_length=150)
    content = models.TextField()

【问题讨论】:

  • 你看过django-cms.org/en吗?
  • 是的,我在开始这个项目之前已经完成了我的研究,但是没有一个 CMS 会做我想做的事。另外,我是个控制狂,喜欢完全控制我的应用。
  • 好吧,你可以有一个表单或其他东西来更新内容,并在通过换行过滤器后用 Django 显示它:docs.djangoproject.com/en/1.7/ref/templates/builtins/…

标签: django wysiwyg


【解决方案1】:

您是否尝试过 David Burke 的 django-content-edit (https://pypi.org/project/django-content-edit/)。

基本上,您然后创建页面的 HTML 部分并将 CMS_CONTENT -标签添加到不同的位置。编辑内容是使用 Django admin 中的 WYSIWYG -control 完成的,其中可用功能(链接、图像、样式等)可以使用配置进行限制。这让您可以很好地控制一切。

它有它自己的问题,比如它很容易弄乱您在 RAW 视图中添加的 HTML 内容,因为它会自动在 WYSIWYG 视图中打开内容,这似乎会删除它不理解/不支持的 HTML 标签。它也不适用于 Django 2.0,因为 on_delete 现在对于 ForeignKey 和 OneToOneField 模型字段是强制性的。

我知道这是个很老的问题,但我还是回答了。

【讨论】:

猜你喜欢
  • 2021-06-19
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2019-12-31
  • 1970-01-01
相关资源
最近更新 更多