Используйте Django Flatpages с TinyMCE
Я пытаюсь получить виджет Django TinyMCE с помощью Django Flatpages (в Admin).
Я уже читал это встраивание tinyMCE в django flatpage
Я сделал сабе, но не работает. Вот мой код admin.py:
from django.contrib.flatpages.admin import FlatpageForm, FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from tinymce.widgets import TinyMCE
from django.contrib import admin
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)
Мой сайт работает нормально, без ошибок, возможно редактировать или создавать новую страницу Django, но виджет не появляется. Есть идеи?
2 ответа
Я сделал что-то другое, и мне не хватало свойства "fields" в мета-классе, после нового кода, протестированного и запущенного:
from django.contrib.flatpages.admin import FlatpageForm, FlatPageAdmin
from django.contrib import admin
from django import forms
from django.contrib.flatpages.models import FlatPage
from tinymce.widgets import TinyMCE
class FlatPageForm(forms.ModelForm):
content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
class Meta:
model = FlatPage
fields = '__all__'
class PageAdmin(FlatPageAdmin):
"""
Page Admin
"""
form = FlatPageForm
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, PageAdmin)
Принятый ответ не работал для меня (Django 1.10), так что это то, что работало для меня.
Сначала я создал новое приложение под названием "контент" в своем проекте, чтобы сохранить его организованность.
manage.py startapp content
Я добавил это в мой 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 tinymce.widgets import TinyMCE # Register your models here. class PageAdmin(FlatPageAdmin): """ Page Admin """ formfield_overrides = { models.TextField: {'widget': TinyMCE(attrs={'cols': 100, 'rows': 15})}, } admin.site.unregister(FlatPage) admin.site.register(FlatPage, PageAdmin)
Наконец запустить
manage.py collectstatic
, перезагрузите ваш веб-сервер и обновите.