Blog

django CMS pierwsze wrażenia

Luźne sprawozdanie z wrażeń, jakie mi towarzyszyły podczas obcowania z django CMS.

django CMS pierwsze wrażenia

I od razu powinienem dodać, że prawdopodobnie pierwsze i ostatnie równocześnie. Niestety po kilku solidnych godzinach spędzonych na studiowaniu dokumentacji (nie najwyższych lotów) i kolejnych próbach zbudowania prostej strony na bazie django CMS, napisać mogę, że jednak zupełnie nie zaiskrzyło między nami. Prawdopodobnie w sporej części to efekt pewnego już znużenia tematyką web devu, ponieważ jestem niemal pewien, że gdybym zajął się tym CMS-em jeszcze jakiś miesiąc temu pewnie ocena całości byłaby inna, bo zwyczajnie wówczas pokładów naturalnego entuzjazmu byłoby więcej. W obecnej sytuacji nie chodziło już wyłącznie o kolejną okazję, by czegoś ciekawego się dowiedzieć oraz przy okazji być może nauczyć się tego i owego. Po prostu tym razem podszedłem do tego narzędzia z bardziej konkretnymi oczekiwaniami i od razu muszę zaznaczyć, że niestety django CMS nie do końca im sprostał. Stawiając sprawę nieco inaczej: od kilku miesięcy w dużej części skupiam się na poszukiwaniu jakiejś sensownej alternatywy dla WordPressa, który przy całej swojej prostocie jest też straszliwie irytujący pod wieloma względami. Jednak fundamentalnym problemem jest tutaj fakt, że najpopularniejszy z CMS-ów cały czas bazuje na PHP, a języka tego zdecydowanie nie ma liście rzeczy, które chciałbym poznać przed śmiercią i określenie to należy traktować jako dość mocny eufemizm. O ile jednak wcześniej całe te poszukiwania czynione były trochę po omacku, czyli bez wyraźnego planu, a przede wszystkim jasno sprecyzowanych oczekiwań, to mimo wszystko czerpałem z tego nie lada frajdę. Niestety obcowanie z django CMS koniec końców okazało się dla mnie wyjątkowo męczące.

Być może to efekt tego, że niestety finalnie okazało się, że mimo wszystko jest tutaj więcej Django w Django niż piszący te słowa, by sobie życzył. Jednak by ten tekst nie składał się wyłącznie z marudzenia zacznijmy od tego, co z całą pewnością się tutaj udało. Przede wszystkim widać, że to w założeniu miało być i faktycznie jest narzędzie do tworzenia oraz zarządzania treścią. Dlatego – do pewnego momentu – nie ma tutaj absolutnie potrzeby przejmowania się definiowaniem, a następnie kreowaniem dedykowanych modeli czy widoków. Po prostu w panelu administratora tworzymy nową stronę, nadajemy jej nazwę, a następnie przypisujemy do niej odpowiedni szablon. Tak naprawdę kluczowa w tym wypadku jest praca z tymi ostatnimi, ponieważ  to on definiuje wygląd naszej strony, ale również pola, które następnie możemy wypełnić odpowiednią treścią za pomocą zaimportowanych pluginów. Niestety to co w teorii brzmi całkiem sympatycznie w praktyce wydało mi się strasznie toporne i mało przekonujące, jeśli chodzi o sposób dochodzenia do końcowego efektu. Być może zabrakło mi odrobiny cierpliwości, a za dużo było uprzedzeń wynikających z poprzednich doświadczeń z frameworkiem Django, ale na ten przykład korzystanie z gotowych komponentów Bootstrap 4 było tak nieintuicyjnie, że chyba prościej  byłoby je umieszczać w pliku HTML w postaci gotowych bloków kodu.

Druga rzecz, za którą twórcy mają u mnie plusa, to przygotowanie instalatora projektów, który wykonuje za nas sporą część pracy konfiguracyjnej typowej dla Django. Gwoli ścisłości sam instalator został przygotowany przez firmę trzecią i po prostu później włączony do projektu. Z resztą django CMS sporo zawdzięcza narzędziom tworzonym poza core teamem. Prym zdają się tutaj wieść dwie firmy, czyli Nephila oraz Divo. W sumie ta ostatnia firma rodem ze Szwajcarii tak naprawdę odpowiada za powstanie i rozwijanie przez lata bohatera tego wpisu. Dopiero jakoś w połowie zeszłego roku z inicjatywy Divo oraz dwóch innych podmiotów powołana została organizacja non-profit “django CMS Association”, która ma odpowiadać od tego momentu za rozwój tego projektu. Sądząc po aktywności na stronie www.django-cms.org był to chyba dobry ruch, ponieważ wygląda na to, że całość nabrała trochę więcej animuszu czy tam impetu. W efekcie możemy się spodziewać wydania niedługo nowej, tym razem czwartej wersji django CMS.

Jak łatwo się domyśleć niespecjalnie wyczekuję jej wydania, zwłaszcza że zapowiadane zmiany – choć dość w niektórych punktach enigmatycznie opisane – nie wydają się likwidować tego, co dla mnie stanowi największą bolączkę django CMS, czyli ogólnego wrażenia, że całość jest niezbyt koherentnym zlepkiem różnych mniej lub bardziej udanych pomysłów i rozwiązań. Oczywiście biorę poprawkę, że być może znowu moje oczekiwania okazały się zupełnie nieadekwatne do tego, co ma do zaproponowania django CMS, ale nie zmienia to faktu, że z perspektywy pewnych poszukiwanych wartości, nie wydaje się to być narzędzie, które jakoś w moje potrzeby wpisuje. Tym bardziej, że w między czasie okazało się, że w moim przeglądzie CMS dla Pythona przegapiłem jedno z rozwiązań, które być może leży bliżej tego, czego faktycznie szukam, a przy tym nie ma nic wspólnego z Django.