题
我知道如何使用 widget= 在常规 django 表单中使用 WMD 和其他此类 javascript 编辑器。但是,如何在 Django 管理中将 WMD 用于文本字段?最重要的是,如何将它用于管理中 contrib.flatpages 上的内容字段?
另外,我想我可能想使用 WMD 的 StackOverflow 分支,所以如果有必要的话,我希望有任何特殊说明。
我知道如何在模板中使用 markdown 过滤器,所以这部分没问题。我只需要让编辑器出现并在管理界面中工作。
解决方案
我放弃了在试图使用大规模杀伤性武器。相反,我用Markitup!由于这个帖子的时候,大规模杀伤性武器的当前版本是不及格。它的StackOverflow上叉较好,但缺少很多功能我想要的。
相反,我决定用Markitup!它有一个可重复使用的Django的应用程序。这也很好地集成与现有django.contrib.markup模板过滤器。
我还发现一个网站,展示了如何使用它的flatpages,而无需编辑管理模板。
其他提示
要将 WMD 或任何其他很酷的 JS 插入 Django 管理页面,请按照 Django 文档中有关覆盖管理模板的说明进行操作,右侧 这里 -- 最坏的情况是,您将复制并编辑现有的 Django 模板以添加所需的 JS 功能,并使用这些说明来确保使用修改后的模板而不是 Django 的默认模板,但几乎总是您可以做得更好,正如您将在这些说明中看到的那样。
这不是您问题的直接答案,但可能会有所帮助。
添加以下内容似乎很常见 小MCE django 的所见即所得编辑器。如果您搜索有关如何将 TinyMCE 添加到 Django 管理中心的说明,您可能能够调整 WMD 的方法。
在书里 实用 Django 项目,第二版, ,作者将TinyMCE嵌入到 flatpages
行政。您可以从以下位置下载代码 Bitbucket存储库, ,并查看它是如何完成的(查看 cms/templates/admin/)。或者,你可以尝试 本指南 在 Django 网站上。
对于这个问题+1。我也想写 flatpages
在降价中。不过我认为使用 Markdown 的最佳方法是
- 有两个字段,比如说
content
和content_html
, ,并将原始 Markdown 存储在content
. - 保存对象时,将markdown转换为html并存储在
content_html
.
这意味着您可以避免每次查看页面时都在模板中转换为 html。但是我不知道一种优雅的扩展方式 contrib.flatpages
通过“添加”一个额外的字段。