2

私はdjango-tinymceを使用しています。管理パネルのフラットページに埋め込む方法を知りたいです。

プロジェクトの readme から:

プロジェクトの settings.py の INSTALLED_APPS に tinymce を追加します。

INSTALLED_APPS = (
    ...
    'tinymce',
)

プロジェクトの urls.py に tinymce.urls を追加します。

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

私のフラットページのURL:

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

1 に答える 1

13

content フィールドのウィジェットをオーバーライドする必要があります。これをする:

  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

次に、古いフラットページ管理者の登録を解除し、新しいフラットページ管理者を再登録します

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, PageAdmin)
于 2013-03-02T19:58:22.137 に答える