【问题标题】:Wagtail Custom Pages?鹡鸰自定义页面?
【发布时间】:2018-03-08 23:57:18
【问题描述】:

我对 Wagtail/Django 完全陌生。

这是我想要达到的目标:

我希望 Wagtail CMS 安装的后端能够创建遵循严格模板的“页面”或“帖子”。

模板将具有自定义字段,例如“标题”和目标内容等。

我确信这是可能的,我只是想知道我将如何实现这一目标?

例如,有谁知道 Wagtail 是否有插件或其他插件来启用此功能?

感谢所有帮助/指导。

【问题讨论】:

  • 不明白你的意思,你看过文档吗? docs.wagtail.io/en/v2.0/getting_started/tutorial.html
  • 您所描述的内容听起来与 Wagtail 的标准工作方式完全相同,如教程中所述。或者您是否正在寻找一种在 Wagtail 管理本身中而不是在 Python 代码中定义新页面类型的方法?鹡鸰故意支持这一点 - 请参阅docs.wagtail.io/en/v2.0/getting_started/…
  • 感谢@Alexey - 我来自 WordPress 背景,所以我想了解 CMS 的工作原理。

标签: wagtail


【解决方案1】:

您想要创建遵循严格模板的页面和帖子:这正是 Django 和 Wagtail 让您做的事情。但是有一个问题:Wagtail 更进一步,让您可以移动页面的整个部分——这些被称为 Streamfields。老实说,这是一个了不起的功能。

这是一个让您入门的示例(注意:这是未经测试的,也不是 linted)

# -*- coding: utf-8 -*-
"""Basic Page model."""
from django.db import models

from wagtail.admin.edit_handlers import FieldPanel, MultiFieldPanel, StreamFieldPanel
from wagtail.core.fields import StreamField
from wagtail.core.models import Page

from your_custom_app.streams import streamfields


class BasicPage(Page):
    """A basic page class."""

    template = "templates/pages/basic_page.html"
    parent_page_type = ["pages.HomePage", "pages.BasicPage"]
    subpage_types = ["pages.BasicPage"]

    header = models.CharField(max_length=100)
    content = StreamField(
        ('streamfield_name', streamfields.CustomStreamfield()),
        # ... More streams 
        null=True,
        blank=True,
    )
    # Other additional fields you want on your page.

    # Panels are how you lay out your pages in the /admin/
    content_panels = [
        FieldPanel("title", classname="full title"),
        FieldPanel("header"),
        # FieldPanel("other_fields"),
        StreamFieldPanel("content"),
    ]
    settings_panels = Page.settings_panels + [] # Custom settings panel
    promote_panels = Page.promote_panels + [] # Custom promote panel

    class Meta:
        """Meta information."""

        verbose_name = "Basic Page"
        verbose_name_plural = "Basic Pages"

你也可以下载设置the Wagtail Bakery Demo,里面有很多很好的例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多