Instalace TinyMCE do Djanga

Po více než měsíční tvůrčí pauze zaviněné převážně školou (ano, začalo zkouškové) jsem se rozhodl sepsat sem jednoduchý návod na instalaci WYSIWYG editor TinyMCE do frameworku Django.

Django – moje nová hračka. Jedná se o framework v pythonu pro tvorbu webů. Určitě můžete očekávat několik dalších článků s touto tématikou – po pravdě jsem se rozhodl na bastl jménem PHP vykašlat a při www tvorbě používat jen a pouze Django.

TinyMCE – převážně JavaScriptová knihovna pro aplikaci WYSIWYG (What-You-See-Is-What-You-Get) editorů do webů. Pro každý prohlížeč si jeho podporu řeší sama, což je naprosto krásná ukázka zapouzdření (vy jako koncový uživatel nemusí vědět, co se děje uvnitř, ale víte, že to bude fungovat všem).

Takže teď k samotnému slibovanému návodu:

1. První krokem je stáhnutí TinyMCE ze stránek. Archiv rozbalte a obsah si nakopírujte do vašeho media adresáře. Dále stáhněte lokalizační balíček pro češtinu, rozbalte a obsah nakopírujte do adresáře s TinyMCE. Tento krok obzvláště zdůrazňuji, protože já jsem ho původně neudělal, díky čemuž mně na konci postupu TinyMCE nechtělo fungovat.

2. Dalším krokem je donutit Django spolupracovat s TinyMCE. Nejrychlejší cestou, jak toho docílit, je použít modul django-tinymce. Domovská stránka tohoto projektu je http://code.google.com/p/django-tinymce/. Z ní doporučuji stáhnout archiv s verzi 1.5. Ten pak rozbalíte a nainstalujete:

tar xzvf django-tinymce-1.5.tar.gz
cd django-tinymce-1.5
sudo python setup.py install

3. Ve vašem django projektu je ještě potřeba nastavit soubory settings.py a urls.py.

V settings.py musíte django-tinymce přidat do skupiny nainstalovaných aplikací. Mělo by to vypadat nějak takto:

INSTALLED_APPS = (
    ...
    'tinymce',
    ...
)

Ještě v settings.py je potřeba nastavit některé proměnné pro TinyMCE, jako je cesta a url k TinyMCE, nastavení, co se bude v WYSIWYG editoru zobrazovat atd. Pro zájemce viz návod na konfiguraci.

Poslední krokem pak je nastavení urls.py:

urlpatterns = patterns('',
    ...
    (r'^tinymce/', include('tinymce.urls')),
    ...
)

Jak teď WYSIWYG editor zobrazit?

Zatím jsem to řešil pouze pro administraci a tam stačí když v modelech přepíšete všechny TextField na HTMLField. Takže třeba takto:

from django.db import models
from tinymce import models as tinymce_models

class Character(models.Model):
   name = models.CharField('Jméno', max_length=255)
   firstname = models.CharField('Křestní jméno', max_length=255, null=True, blank=True)
   middlename = models.CharField('Prostřední jméno', max_length=255, null=True, blank=True)
   lastname = models.CharField('Příjmení', max_length=255, null=True, blank=True)
   desc = tinymce_models.HTMLField('Popis', null=True, blank=True)

1 komentář

  1. Pajinek napsal:

    Vykašlat se na bastl PHP byla správná volba :)