Как добавить WYMEditor в панель администратора? Я использую его для своего приложения для обмена сообщениями пользователя и хочу заменить текстовое поле на текстовый редактор.Вставить WYMEditor в admin
0
A
ответ
5
Сначала загрузите WYMEditor пакет здесь http://www.wymeditor.org/download/
Создать widgets.py
from django import forms
from django.conf import settings
from django.utils.safestring import mark_safe
class WYMEditor(forms.Textarea):
#change this for the exact location of your package in your staticfiles
class Media:
js = (
'js/jquery.js',
'wymeditor/jquery.wymeditor.pack.js',
)
def __init__(self, language=None, attrs=None):
self.language = language or settings.LANGUAGE_CODE[:2]
self.attrs = {'class': 'wymeditor'}
if attrs:
self.attrs.update(attrs)
super(WYMEditor, self).__init__(attrs)
def render(self, name, value, attrs=None):
rendered = super(WYMEditor, self).render(name, value, attrs)
return rendered + mark_safe(u'''<script type="text/javascript">
jQuery('#id_%s').wymeditor({
updateSelector: '.submit-row input[type=submit]',
updateEvent: 'click',
lang: '%s',
});
</script>''' % (name, self.language))
Обновите forms.py для формы сообщения, например:
from app_name.widgets import WYMEditor
class MessageAdminForm(forms.ModelForm):
.....
body = forms.CharField(widget=WYMEditor())
.....
Вот это и помните, что точное местоположение вашего пакета
1
Вместо того, чтобы повторно изобретать это колесо, я бы рекомендовал использовать что-то вроде django-wymeditor.
Чтобы использовать эту функцию, принятые included example, просто добавить admin.py
:
from django.contrib import admin
from wymeditor.admin import RichTextAdmin
from example.models import TestModel
class TestModelAdmin(RichTextAdmin):
pass
admin.site.register(TestModel, TestModelAdmin)
Hummm ... Я согласен, но это использует: Django 1.4 и WYMeditor версия: 1.0.0b3. (некоторые из нас все еще на 1.3) – Sevenearths