【问题标题】:Embedding tinyMCE in django flatpage在 django flatpage 中嵌入 tinyMCE
【发布时间】:2013-02-27 22:40:03
【问题描述】:

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

来自项目的自述文件:

在您的项目的 settings.py 中将 tinymce 添加到 INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'tinymce',
)

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

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

我的平面网址:

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

【问题讨论】:

  • 一些代码不会有什么坏处,如果你不向我们展示你尝试了什么并且你被卡住了,很难帮助你......
  • 我不清楚“将其添加到管理面板中的平面页面”是什么意思。您想在管理员页面上添加 tinyMCE,以编辑某些模型的字段吗?或者您是否真的想在您网站的其他地方的 django 平面页面中使用它?
  • 与 django flatpage 一起使用

标签: python django django-tinymce


【解决方案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)

【讨论】:

  • 我将from content.widgets import TinyMCE 更改为from tinymce.widgets import TinyMCE 内容应用小部件是我在项目中使用的自定义小部件,忽略它并使用tinymce 打包的一个
  • 上面的文件会去哪里? project/project/admin.py?
  • 您可以将它添加到项目中任何位置的任何 admin.py 中 - 但我更愿意将我的代码划分得更好一点。创建一个用于覆盖/扩展平面页面的应用程序。我调用我的应用程序content 然后在我的content/admin.py 中添加上面的代码。
  • 太棒了 - 我使用相同的方法成功地为 Django Pagedown(Stack Overflow 使用的相同编辑器)工作,但注册了 AdminPagedownWidget 而不是 TinyMCE 小部件。
  • 将它与 Ckeditor 一起使用,就像 @nhinkle 对 Django_Pagedown 所做的那样。我刚刚通过以下方式更改了 TinyMCE: from ckeditor_uploader.widgets import CKEditorUploadingWidget
猜你喜欢
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2012-03-11
相关资源
最近更新 更多