Как мне установить django-ckeditor? - PullRequest
4 голосов
/ 21 декабря 2010

В Stack Overflow есть два вопроса о этом редакторе , и никто не отвечает !!!

Итак, я спрашиваю, как установить этот пакет Django в мой проект ??Я выполнил эти шаги , без ошибок, ничего, и все же форма остается прежней.Почему ??

Редактировать: вот модель

from datetime import datetime

from django.db                import models
from django.utils.translation import ugettext_lazy as _, ugettext
from ckeditor.fields          import RichTextField

class Newsletter(models.Model):

    title = models.CharField(
        _(u'Title'),
        max_length=200,
        help_text=_(u'Newsletter title'),
        )

    body = RichTextField()

    date = models.DateField(
         _(u'Date'),
         help_text=_(u'Set date when this newsletter should be send') 
    )    

    class Meta:
        ordering = ['title',]

forms.py

from models import Newsletter, Mail
class NewsletterForm(forms.ModelForm):
    class Meta:
       model = Newsletter

view:

from newsletter.models import Newsletter, Mail
from newsletter.forms  import NewsletterForm, MailForm

def newsletters_add(request):
    form = NewsletterForm()
    tpl  = "form_newsletter.html"

    return render_to_response(tpl, RequestContext(request, {
        'form': form,
    }))

Все формы успешно выданыТег {{form}}

settings.py (проекта)

CKEDITOR_MEDIA_PREFIX  = "/media/ckeditor/"
CKEDITOR_UPLOAD_PATH   = "/www/vhosts/sender/media/newsletter/uploads/"
CKEDITOR_UPLOAD_PREFIX = "http://******/media/newsletter/uploads/"
CKEDITOR_RESTRICT_BY_USER = True

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'Basic',
    },
}


INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'django.contrib.admin',
    #'tagging',
    'debug_toolbar',
    'ckeditor',
    'mailer',
    'newsletter'

)

Ответы [ 2 ]

6 голосов
/ 21 декабря 2010

Носитель, необходимый для правильного отображения виджета, должен храниться в объекте формы media.Вы можете вывести тег для нужного js в вашем шаблоне с помощью {{ form.media }}.Администратор должен сделать это автоматически, в то время как в ваших пользовательских представлениях вы должны сделать это сами ... Смотрите документацию django на form media для получения дополнительной информации!

1 голос
/ 21 декабря 2010

хорошо, извините, я был идиотом.в документации нет слов о том, чтобы как-то вручную включить JS!так что просто включите его

<script src="http://****/media/ckeditor/ckeditor/ckeditor.js"></script>

Разработчики там слепы или что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...