Встраивание tinyMCE в плоскую страницу django

Я использую django-tinymce. Я хотел бы знать, как встроить его в плоскую страницу в панели администратора.

Из ридми проекта:

Добавьте tinymce в INSTALLED_APPS в settings.py для вашего проекта:

INSTALLED_APPS = (
    ...
    'tinymce',
)

Добавьте tinymce.urls в urls.py для вашего проекта:

urlpatterns = patterns('',
    ...
    (r'^tinymce/', include('tinymce.urls')),
)

Мой адрес плоской страницы:

url(r'^pages/', include('django.contrib.flatpages.urls')),

person creative creative    schedule 27.02.2013    source источник
comment
Немного кода не повредит, вам трудно помочь, если вы не покажете нам, что вы пробовали, и где вы застряли...   -  person asermax    schedule 28.02.2013
comment
Я не понимаю, что означает добавление его на плоской странице в панели администратора. Вы хотите добавить tinyMCE на страницу админки, как для редактирования поля какой-то модели? Или вы действительно хотите использовать его на плоской странице django где-то еще на вашем сайте?   -  person Mariano    schedule 28.02.2013
comment
используйте его с плоской страницей django   -  person creative creative    schedule 28.02.2013


Ответы (1)


вам нужно переопределить виджет для поля содержимого. Сделать это:

  1. расширить FlatpageForm ModelForm как PageForm
  2. расширьте FlatPageAdmin, чтобы использовать новый PageForm

пример кода:

from django.contrib.flatpages.admin import FlatpageForm, FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
## OOPS this is a custom widget that works for initializing
## tinymce instances on stacked and tabular inlines
## for flatpages, just use the tinymce packaged one.
#from content.widgets import TinyMCE 
from tinymce.widgets import TinyMCE


class PageForm(FlatpageForm):

    class Meta:
        model = FlatPage
        widgets = {
            'content' : TinyMCE(attrs={'cols': 100, 'rows': 15}),
        }


class PageAdmin(FlatPageAdmin):
    """
    Page Admin
    """
    form = PageForm

затем отмените регистрацию старого администратора плоской страницы и перерегистрируйте нового

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, PageAdmin)
person Francis Yaconiello    schedule 02.03.2013
comment
Я изменил from content.widgets import TinyMCE на from tinymce.widgets import TinyMCE Виджет приложения контента — это настраиваемый виджет, который я использую в своих проектах, просто игнорируйте его и используйте пакетный виджет tinymce. - person Francis Yaconiello; 04.03.2013
comment
Куда пойдет указанный выше файл? project/project/admin.py? - person nhinkle; 10.11.2013
comment
Вы можете добавить его в любой admin.py в любом месте вашего проекта, но я предпочитаю, чтобы мой код был разделен немного лучше, чем это. Создайте приложение для переопределения/расширения плоских страниц. Я называю свое приложение content, затем в своем content/admin.py добавляю приведенный выше код. - person Francis Yaconiello; 10.11.2013
comment
Круто - я успешно заработал для Django Pagedown (тот же редактор, что и Stack Overflow), используя тот же метод, но с регистрацией виджета AdminPagedownWidget вместо виджета TinyMCE. - person nhinkle; 31.12.2013
comment
Использовал его с Ckeditor, как @nhinkle сделал с Django_Pagedown. Я только что изменил TinyMCE: from ckeditor_uploader.widgets import CKEditorUploadingWidget - person HamzDiou; 16.05.2019