Django Admin 中的大规模杀伤性武器?

Posted

技术标签:

【中文标题】Django Admin 中的大规模杀伤性武器?【英文标题】:WMD in Django Admin? 【发布时间】:2010-11-18 11:48:32 【问题描述】:

我知道如何使用 widget= 在常规 django 表单中使用 WMD 和其他此类 javascript 编辑器。但是,如何在 Django 管理员中将 WMD 用于文本字段?最重要的是,我如何将它用于管理中 contrib.flatpages 上的内容字段?

另外,我想我可能想使用 WMD 的 *** 分支,所以如果有必要,我希望有任何特殊说明。

我知道如何在模板中使用降价过滤器,所以这部分没问题。我只需要让编辑器出现并在管理界面中工作。

【问题讨论】:

【参考方案1】:

我放弃了尝试使用 WMD。相反,我使用了 Markitup!截至发稿时,当前版本的 WMD 还不能满足要求。它的 *** 分支更好,但缺少我想要的许多功能。

相反,我决定使用 Markitup!它有一个 Django 可重用应用程序。它还与现有的 django.contrib.markup 模板过滤器很好地集成。

django-markitup

我还找到了一个网站,该网站展示了如何将其用于平面页面,而无需编辑管理模板。

extending admin forms in django

【讨论】:

太糟糕了,因为我们已经创建了 django-wmd-editor:github.com/scrum8/django-wmd-editor 它在我需要的时候还没出来。【参考方案2】:

要将 WMD 或任何其他很酷的 JS 插入 Django 管理页面,请按照 Django 文档中关于覆盖管理模板的说明进行操作,正确的 here - 最坏的情况是,您将复制和编辑现有的 Django模板来添加您所需的 JS 功能,并使用这些说明来确保使用修改后的模板而不是 Django 的默认模板,但几乎总是可以做得比这更好,正如您将在这些说明中看到的那样。

【讨论】:

【参考方案3】:

这不是您问题的直接答案,但可能会有所帮助。

在 django 中添加TinyMCE WYSIWYG 编辑器似乎很常见。如果您搜索有关如何将 TinyMCE 添加到 Django 管理员的说明,您也许可以针对 WMD 调整该方法。

在Practical Django Projects, Second Edition一书中,作者在flatpages admin中嵌入了TinyMCE。您可以从Bitbucket repository 下载代码,并查看它是如何完成的(查看 cms/templates/admin/)。或者,您可以在 Django 网站上尝试this guide。


+1 回答问题。我也想在markdown中写flatpages。但是我认为使用降价的最佳方法是

    有两个字段,比如contentcontent_html,并将原始markdown存储在content中。 对象保存后,将markdown转成html并存入content_html

这意味着您可以避免在每次查看页面时在模板中转换为 html。但是我不知道通过“添加”一个额外字段来扩展contrib.flatpages 的优雅方法。

【讨论】:

哇哦,真是个聪明的主意,有两个字段。显然 HTML 字段是不可编辑的。但是,我认为您也可以只缓存转换后的 HTML,并在性能方面获得几乎相同的好处。【参考方案4】:

检查这个 http://fi.am/entry/adding-a-simple-wysiwym-markdown-editor-to-your-mo/

这是更好的解决方案。

如此简单明了。

【讨论】:

以上是关于Django Admin 中的大规模杀伤性武器?的主要内容,如果未能解决你的问题,请参考以下文章

HDU 4289 Control 最小割

小鸡要塞的更新版本

flask框架詳解

WEB框架之Flask

4星|《杀戮与文化》:细致的战争还原,解释略显牵强

THM-武器化(Weaponization)