在django平面中嵌入tinyMCE

cre*_*ive 2 python django django-tinymce

我正在使用django-tinymce.我想知道如何将它嵌入管理面板的平面页面中.

从项目的自述文件:

在settings.py中为项目添加tinymce到INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'tinymce',
)
Run Code Online (Sandbox Code Playgroud)

将tinymce.urls添加到您的项目的urls.py:

urlpatterns = patterns('',
    ...
    (r'^tinymce/', include('tinymce.urls')),
)
Run Code Online (Sandbox Code Playgroud)

我的平面网址:

url(r'^pages/', include('django.contrib.flatpages.urls')),
Run Code Online (Sandbox Code Playgroud)

Fra*_*llo 13

您需要覆盖内容字段的小部件.去做这个:

  1. FlatpageFormModelForm 扩展为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
Run Code Online (Sandbox Code Playgroud)

然后取消注册旧的平面管理员并重新注册新的平面管理员

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, PageAdmin)
Run Code Online (Sandbox Code Playgroud)

  • 您可以将它添加到项目中任何位置的任何admin.py中 - 但我更喜欢将我的代码区分开来比这更好.创建一个用于覆盖/扩展flatpages的应用程序.我在我的`content/admin.py`中调用我的应用程序`content`,我添加了上面的代码. (2认同)