允许用户在Django网站中编辑页面内容

时间:2014-12-10 15:20:22

标签: django wysiwyg

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

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

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

作为参考,我的Page模型如下:

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

1 个答案:

答案 0 :(得分:1)

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

基本上,您然后创建页面的HTML部分,并将CMS_CONTENT-标记添加到其他位置。使用Django管理员中的WYSIWYG -control完成内容的编辑,其中可以使用配置来限制可用功能(链接,图像,样式等)。这样您就可以很好地控制所有内容。

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

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