Wagtail nədir

Wagtail Django üzərində qurulmuş məzmun idarəetmə sistemidir. Redaktorlar səhifə ağacı, önizləmə, versiyalar və planlı dərc alır. Developer isə Page-dən miras alan adi Django modelləri və şablonlar yazır.

Səhifə ağacı: hər səhifənin öz modeli və şablonu var
Səhifə ağacı: hər səhifənin öz modeli və şablonu var
SualWagtail-də cavab
URL haradadır?səhifə ağacındakı yol
Struktur haradadır?model və onun panelləri
Görünüş haradadır?səhifə şablonu

Layihənin yaradılması

bash
pip install wagtail
wagtail start mysite
cd mysite
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

wagtail start home və search tətbiqləri olan layihə yaradır. Wagtail admin paneli /admin/ ünvanındadır.

💡 Wagtail adi Django layihəsidir: settings.py, urls.py, miqrasiyalar və ORM tanış qaydada işləyir.

Səhifə modelləri və ağac

python
# blog/models.py
from django.db import models
from wagtail.admin.panels import FieldPanel
from wagtail.fields import RichTextField
from wagtail.models import Page

class BlogPage(Page):
    date = models.DateField("Post date")
    intro = models.CharField(max_length=250)
    body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel("date"),
        FieldPanel("intro"),
        FieldPanel("body"),
    ]

content_panels redaktor formasını təyin edir. Səhifənin harada ola biləcəyini parent_page_types və subpage_types məhdudlaşdırır:

python
# blog/models.py
from wagtail.models import Page

class BlogIndexPage(Page):
    subpage_types = ["blog.BlogPage"]