django - 管理字段无法在 django 中使用tinymce和filebrowser保存

标签 django django-admin tinymce django-tinymce django-filebrowser

我将 django-tinymce 与运行 django 1.2 的 django-filebrowser 的 no grappelli 分支一起使用。

我使用tinymce HTMLField 模型定义作为我想要所见即所得的模型字段。

我已经将正确的javascript添加到我的AdminModel中,并且文件浏览器工作得很好,将图像添加到文本区域没有问题,但是,当我保存时,文本区域不会更新(看起来tinnymce不接触该做的时候就做)。当我关闭 filebrowser 插件时,一切正常,因此它和 TinyMCE onSubmit 功能肯定存在一些冲突。

我已经搞乱它有一段时间了,但就是无济于事 - 所有这些部分对我来说都是相当新的,所以即使是一些关于搞乱什么的想法也会有帮助。

提前致谢。

编辑:添加了奖励信息 - “mode”配置中的默认模式是“textareas”。当我删除它时,一切都会正确保存。遗憾的是,这也删除了我正在做所有这些操作的图像按钮......

更新

这是我正在使用的 TinyMCE 配置(django-filebrowser 中包含的配置 - 这是损坏):

tinyMCE.init({
  mode: "textareas", 
  theme: "advanced",
  language: "en",
  skin: "o2k7",
  browsers: "gecko",
  dialog_type: "modal",
  object_resizing: true,
  cleanup_on_startup: true,
  forced_root_block: "p",
  remove_trailing_nbsp: true,
  theme_advanced_toolbar_location: "top",
  theme_advanced_toolbar_align: "left",
  theme_advanced_statusbar_location: "none",
  theme_advanced_buttons1: "formatselect,bold,italic,underline,bullist,numlist,undo,redo,link,unlink,image,code,fullscreen,pasteword,media,charmap",
  theme_advanced_buttons2: "",
  theme_advanced_buttons3: "",
  theme_advanced_path: false,
  theme_advanced_blockformats: "p,h2,h3,h4,h5,h6",
  width: '700',
  height: '200',
  plugins: "advimage,advlink,fullscreen,visualchars,paste,media,template,searchreplace",
  advimage_styles: "Linksbündig neben Text=img_left;Rechtsbündig neben Text=img_right;Eigener Block=img_block",
  advlink_styles: "internal (sehmaschine.net)=internal;external (link to an external site)=external",
  advimage_update_dimensions_onchange: true,
  file_browser_callback: "CustomFileBrowser",
  relative_urls: false,
  valid_elements : "" +
  "-p," + 
  "a[href|target=_blank|class]," +
  "-strong/-b," +
  "-em/-i," +
  "-u," + 
  "-ol," + 
  "-ul," + 
  "-li," + 
  "br," + 
  "img[class|src|alt=|width|height]," + 
  "-h2,-h3,-h4," + 
  "-pre," +
  "-code," + 
  "-div",
  extended_valid_elements: "" + 
  "a[name|class|href|target|title|onclick]," + 
     img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name]," + 
  "br[clearfix]," + 
  "-p[class<clearfix?summary?code]," + 
  "h2[class<clearfix],h3[class<clearfix],h4[class<clearfix]," + 
  "ul[class<clearfix],ol[class<clearfix]," + 
  "div[class],"
});

这是我遇到的两个问题之一 - 也将在下面发布答案。

最佳答案

这个问题实际上有两个方面。第一个问题是 django-filebrowser-no-grappelli 附带的默认 TinyMCE 配置(上面的问题)。我不确定它出了什么问题,但它阻止了按下提交按钮时更新实际的表单字段。

当我使用 TinyMCE 的自定义配置时,表单字段保存工作正常,但文件浏览被破坏。这是因为如果 django-tinymce 在已安装的应用程序列表中看到“filebrowser”,它会覆盖 file_browser_callback 并将其设置为“djangoFileBrowser”,因此即使我在自己的配置中将其正确设置为“CustomFileBrowser”。解决方案是明确告诉它不要设置该值。我将以下内容添加到我的 settings.py 中:

TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced',
    'theme_advanced_toolbar_location': "top",
    'theme_advanced_toolbar_align': "left",
    'skin': "o2k7",
    "file_browser_callback" : "CustomFileBrowser",
}
TINYMCE_FILEBROWSER = False

一切似乎都运行良好。这个问题对于我的版本组合来说似乎相当独特。

关于django - 管理字段无法在 django 中使用tinymce和filebrowser保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231432/

相关文章:

django - 如何在 django admin 中获取对象的历史记录?

python - Django 管理员登录 OperationalError at/admin/login/(1044, "Access denied for user

javascript - 如何自定义 TinyMCE HTML 输出?

php - TinyMCE 值在第一次提交时返回 NULL/无值

Django Forms clean() 方法 - 需要客户端的 IP 地址

python - Django 多重继承 E005

python - 我缺少使用 Django 和 Python 编辑数据库记录的内容

python - Django 迁移不会更改 AWS Elastic Beanstalk 中的数据库

django - 你如何让 Django-admin 时区知道?

javascript - TinyMCE:如何删除我之前从段落中选择的 block 格式?