user2069801
user2069801

Reputation: 111

How to integrate wysiwyg editor with django flatpages?

How to integrate wysiwyg editor with django flatpages? I tryed django-ckeditor but it is not well described by. Has anyone tried it?

Upvotes: 11

Views: 3303

Answers (3)

Anatolij
Anatolij

Reputation: 130

I just connect django-ckeditor to flatpages application by following code in admin.py:

from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.db import models

from cked.widgets import CKEditorWidget

class FlatPageCustom(FlatPageAdmin):
    formfield_overrides = {
        models.TextField: {'widget': CKEditorWidget}
    }

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageCustom)

It works!

Upvotes: 12

n1_
n1_

Reputation: 4397

I would try this application. It's using Tiny MCE.

https://github.com/mjr27/django-flatpages-tinymce

Upvotes: 0

ILdar Migranov
ILdar Migranov

Reputation: 236

from django.db.models import Field
from django.forms import Textarea
from settings import MEDIA_URL

class WidgetWYSIWYG(Textarea):
    def __init__(self, *args, **kwargs):
        super(WidgetWYSIWYG, self).__init__(attrs={'class': 'wysiwygEditor vLargeTextField'}, *args, **kwargs)
    class Media:
        js = (
            MEDIA_URL+'common/tiny_mce/tiny_mce.js',
            MEDIA_URL+'common/filebrowser/js/TinyMCEAdmin.js',
            )

class WYSIWYGField(Field):
    def get_internal_type(self):
        return "TextField"

    def formfield(self, **kwargs):
        defaults = {'widget': WidgetWYSIWYG}
        defaults.update(kwargs)
        return super(WYSIWYGField, self).formfield(**defaults)

in file admin.py

from django.contrib import admin
from wysiwyg import WidgetWYSIWYG

from django.db import models
from django.contrib.flatpages.models import FlatPage
from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld

class FlatPageAdmin(FlatPageAdminOld):
    formfield_overrides = {
        models.TextField: {'widget': WidgetWYSIWYG},
    }

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)

Upvotes: 0

Related Questions