我有一个Django支持的网站,就像一个迷你CMS。我想让没有HTML知识的用户编辑页面内容。问题是大多数页面中都有一些或多或少复杂的HTML位(例如Bootstrap手风琴),这些页面必须完好无损。
我尝试设置一个WYSIWYG编辑器,但结果却是一场灾难,因为它严重改变了我的HTML(删除了属性,添加了p
个标签等等。)
是否有可行的选项让人们更改页面文本,而不是HTML结构?
作为参考,我的Page
模型如下:
class Page(models.Model):
title = models.CharField(max_length=150)
content = models.TextField()
答案 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模型字段是必需的。
我知道这是一个非常老的问题,但我还是回答了。