在Django flatpage中嵌入tinyMCE
我正在使用 django-tinymce。我想知道如何在管理面板的静态页面中嵌入它。
根据这个项目的说明:
首先,在你的项目的 settings.py 文件中,把 tinymce 加入到 INSTALLED_APPS 里:
INSTALLED_APPS = (
...
'tinymce',
)
然后,在你的项目的 urls.py 文件中,添加 tinymce.urls:
urlpatterns = patterns('',
...
(r'^tinymce/', include('tinymce.urls')),
)
我的静态页面网址是:
url(r'^pages/', include('django.contrib.flatpages.urls')),
1 个回答
13
你需要重写内容字段的组件。要做到这一点:
- 扩展一下
FlatpageForm
模型表单,创建一个新的PageForm
- 扩展
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
然后取消注册旧的 flatpage 管理器,再注册新的管理器
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, PageAdmin)