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
。但是我认为使用降价的最佳方法是
-
有两个字段,比如
content
和content_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 中的大规模杀伤性武器?的主要内容,如果未能解决你的问题,请参考以下文章