代码之家  ›  专栏  ›  技术社区  ›  pivotal

Admin字段无法在Django中使用tinymce和filebrowser保存

  •  2
  • pivotal  · 技术社区  · 15 年前

    我正在使用Django Tinymce和运行Django 1.2的Django FileBrowser的no grappelli分支。

    我将Tinymce HTMLField模型定义用于我希望拥有WYSIWYG的模型字段。

    我已经在我的AdminModel中添加了正确的javascript,FileBrowser工作得很好,将图像添加到文本区域没有问题,但是,当我保存时,文本区域不会更新(看起来Tinnymce在应该的时候不会触摸它)。当我关闭filebrowser插件时,一切都正常,因此它和tinymce onsubmit功能肯定有一些冲突。

    我把它弄得一团糟已经有一段时间了,但还是找不到任何地方——所有这些东西对我来说都是很新的,所以即使是一些处理什么的想法也会有所帮助。

    事先谢谢。

    编辑: 添加的奖励信息-配置中“模式”的默认模式为“文本区域”。当我移除它时,一切都会正确保存。不幸的是,这也删除了图像按钮,我正在做的所有这一切…

    更新

    以下是我使用的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],"
    });
    

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   pivotal    15 年前

    这个问题实际上是双重的。第一个问题是django filebrowser no grappelli随附的默认tinymce配置(上图中的问题)。我不确定它出了什么问题,但是当按下提交按钮时,它阻止了实际表单字段的更新。

    当我使用Tinymce的自定义配置时,表单字段保存工作正常,但文件浏览被破坏。这是因为如果django tinymce在已安装的应用程序列表中看到“file browser”,它会覆盖文件“browser”回调并将其设置为“django file browser”,因此即使我在自己的配置中将其正确设置为“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
    

    一切似乎都很顺利。这个问题对于我的版本组合来说似乎是相当独特的。

    推荐文章