2013-02-11 4 views
0

Как добавить WYMEditor в панель администратора? Я использую его для своего приложения для обмена сообщениями пользователя и хочу заменить текстовое поле на текстовый редактор.Вставить WYMEditor в admin

ответ

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) 
+0

Hummm ... Я согласен, но это использует: Django 1.4 и WYMeditor версия: 1.0.0b3. (некоторые из нас все еще на 1.3) – Sevenearths