-
-
Save elidickinson/1379652 to your computer and use it in GitHub Desktop.
from django.contrib import admin | |
from django.contrib.flatpages.models import FlatPage | |
# Note: we are renaming the original Admin and Form as we import them! | |
from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld | |
from django.contrib.flatpages.admin import FlatpageForm as FlatpageFormOld | |
from django import forms | |
from ckeditor.widgets import CKEditorWidget | |
class FlatpageForm(FlatpageFormOld): | |
content = forms.CharField(widget=CKEditorWidget()) | |
class Meta: | |
model = FlatPage # this is not automatically inherited from FlatpageFormOld | |
class FlatPageAdmin(FlatPageAdminOld): | |
form = FlatpageForm | |
# We have to unregister the normal admin, and then reregister ours | |
admin.site.unregister(FlatPage) | |
admin.site.register(FlatPage, FlatPageAdmin) |
In order to make it work with latest versions of Django you should add fields = '__all__'
to the Meta
class.
It's a lot easier now. Take a look. https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides
To get this to work In Django 2.0 I created a new app call projectflatpages.
Reference: https://docs.djangoproject.com/en/2.0/ref/contrib/flatpages/#via-the-admin-interface, https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overrides
Created an admin.py in the app folder.
from django.contrib import admin
from django.db import models
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.utils.translation import gettext_lazy as _
from ckeditor.widgets import CKEditorWidget
# Define a new FlatPageAdmin
class FlatPageAdmin(FlatPageAdmin):
formfield_overrides = {
models.TextField: {'widget': CKEditorWidget}
}
# Re-register FlatPageAdmin
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)
To get this to work In Django 2.0 I created a new app call projectflatpages.
Reference: https://docs.djangoproject.com/en/2.0/ref/contrib/flatpages/#via-the-admin-interface, https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_overridesCreated an admin.py in the app folder.
from django.contrib import admin from django.db import models from django.contrib.flatpages.admin import FlatPageAdmin from django.contrib.flatpages.models import FlatPage from django.utils.translation import gettext_lazy as _ from ckeditor.widgets import CKEditorWidget # Define a new FlatPageAdmin class FlatPageAdmin(FlatPageAdmin): formfield_overrides = { models.TextField: {'widget': CKEditorWidget} } # Re-register FlatPageAdmin admin.site.unregister(FlatPage) admin.site.register(FlatPage, FlatPageAdmin)
This works fine. thanks dude.
Where better to create this file?