Поле администратора не может быть сохранено с помощью tinymce и filebrowser в Django - PullRequest
2 голосов
/ 12 июля 2010

Я использую django-tinymce вместе с веткой no grappelli django-filebrowser под управлением django 1.2.

Я использую определение модели Tinymce HTMLField для поля модели, которое я хотел бы иметь WYSIWYG.

Я добавил правильный JavaScript в мой AdminModel, и браузер файлов работает отлично, добавляя изображение в текстовую область без проблем, однако, когда я сохраняю, текстовая область не обновляется (похоже, что tinnymce нене трогай, когда надо).Когда я отключаю плагин FileBrowser, все работает нормально, поэтому должен быть какой-то конфликт с ним и с функциональностью TinyMCE onSubmit.

Я уже некоторое время возился с ним и просто никуда не могу добраться - всеиз этих частей являются довольно новыми для меня, так что даже некоторые идеи о том, с чем связываться, будут полезны.

Заранее спасибо.

edit: Добавлена ​​информация о бонусе - режимом по умолчанию в конфигурации для 'mode' был 'textareas'.Когда я удаляю это, все сохраняет правильно.К сожалению, это также удаляет кнопку изображения, которую я делаю все это, чтобы иметь ...

update

Вот конфигурация 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 Ответ

3 голосов
/ 13 июля 2010

Проблема была на самом деле двоякой. Первой проблемой была встроенная конфигурация TinyMCE по умолчанию, поставляемая с django-filebrowser-no-grappelli (выше, в вопросе). Я не уверен, что с ним не так, но он не позволил обновить действительные поля формы при нажатии кнопки отправки.

Когда я использовал пользовательскую конфигурацию для 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

И все, кажется, работает нормально. Эта проблема, кажется, довольно уникальна для моей комбинации версий.

...