Start mit Wagtail/Django CMS (unter ubuntu)

Wagtail ist ein gut in Django intergriertes cms. Es kommt sehr schlank daher und kann auch headless benutzt werden. Soll es aber bekanntere CMS (WordPress) ersetzen müssen einige Plugins installiert werden.

Wenn das ganze später auf einem Shared Hosting laufen soll muss das Python virtuell enviroment genutzt werden.

Virtual Enviroment installieren (in einem geeignet Ordner):
mkdir wtdemo
cd wtdemo
python3 -m venv env
source env/bin/activate

Basis installieren / Projekt erstellen
pip3 install django
pip3 install wagtail
wagtail start wt_site . #man beachte den punkt: installiert im aktuellen ordner
python3 manage.py migrate
python3 manage.py createsuperuser

Wagtail sollte sich nun per
python3 manage.py runserver
starten lassen und unter localhost:8000
einsehbar sein

StartDas erst PageModel
Um Inhalte auf die Seite hinzufügen zu können muss hier zuerst das PageModel bearbeitet werden, wir nutzten erstmal nur das HomePage Model und fügen nur ein einziges Feld hinzu:

class HomePage(Page):

    body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('body', classname="full"),
    ]

In home_page.html fügen wir nun folgende Zeilen hinzu:
{% load wagtailcore_tags %}
{{ page.body|richtext }}

Nun muss das ganze per
python3 manage.py makemigrations
python3 manage.py migrate
in die Datenbank übertragen werden

Es können nun Seite als ChildPages der Startseite angelegt werden (zb about). Dies müssten nun per
localhost:8000/about
sichtbar sein

Menü
Um ein Main-Menü hinzuzufügen kann nun noch folgende Code in dein base.html hinzugefügt werden:

{% wagtail_site as current_site %}  
    {% for nav in current_site.root_page.get_children.live %}
          {% if nav.show_in_menus %}
              <li class="nav-item">
                  <a class="nav-link {% if nav.slug in request.path %} active {% endif %}" href="{{nav.url}}">{{nav.slug}}</a>
              </li>
          {% endif %}
    {% endfor %}</ul>

weiter gehts mit: Wagtail mehrsprachig

Damit das ganze später auch produktiv funktioniert muss eine wgsi Applikation erstellt werden. Hier erfahrt ihr mehr dazu