安装到现有 Django 应用程序后如何将页面模板添加到 Wagtail

How to add page templates to Wagtail after installing into an existing Django application

我正在尝试扩展一个已经存在的 Django 应用程序。该应用程序运行良好,但我想添加博客功能。

我已经使用这里的指南安装了 Wagtail (http://docs.wagtail.io/en/latest/getting_started/integrating_into_django.html) 要检查 wagtail 是否安装,我已经导航到这里: http://myurl/cms

并显示 wagtail 管理面板。当我导航到 http://myurl/admin 时,我得到了我的 Django 应用程序的默认管理控制面板,到目前为止一切顺利。

现在我正在尝试建立博客。

我找到了这个教程: http://wiseodd.github.io/techblog/2015/06/22/developing-wagtail/ 这建议将以下内容作为第一步:-

First, we’ll create our generic page class as home page class is already created by default when we started Wagtail project.

然后显示此代码:

# core/models.py

from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel
from wagtail.wagtailsearch import index

# We’re deriving our GenericPage from Page class, so that our GenericPage also has Page’s field, e.g. title
class GenericPage(Page):
    # Let’s create our custom field, named body which is a rich text
    body = RichTextField()

    # Index the body field, so that it will be searchable
    search_fields = Page.search_fields + (index.SearchField(‘body'),) # To show our body field in admin panel, we have to wrap it with FieldPanel and add it to Page’s field panel content_panels = Page.content_panels + [FieldPanel('body', classname=‘full’)]

我找不到要将其添加到哪个文件中。我使用 grep 搜索了系统,发现了一些包含文本字符串的文件:

from wagtail.wagtailcore.models import Page

我认为最有可能的候选人在目录中:

env/lib/python2.7/site-packages/wagtail/project_template

在我原来的应用程序目录中。我将上面的代码添加到位于上述目录中的 models.py 文件中。然后我运行

python manage.py makemigrations

但是它说没有发现迁移。上面发布的教程中的下一步建议您现在应该看到三种不同的页面类型可用于在控制面板中创建,但我找不到创建任何页面的选项。

  1. 你能告诉我我是否编辑了上面的正确文件,或者我是否应该编辑其他文件,还有

  2. 为什么我在 wagtail 控制面板中看不到任何添加新页面的选项?

我已经查阅了此处的文档 (http://docs.wagtail.io/en/latest/getting_started/tutorial.html) 并尝试按照 'extend the homepage model' 部分进行操作,但无法弄清楚 home/models.py 文件在哪里我的 Django 应用程序中没有名为 home 的文件夹。

感谢任何建议

正如 final section of the "integrating into Django" docs 所说:

You’re now ready to add a new app to your Django project (via ./manage.py startapp - remember to add it to INSTALLED_APPS) and set up page models

运行 ./manage.py startapp blog 将向您的项目添加一个 blog 应用程序,包括一个空的 models.py - 这是您添加页面定义的地方。 (Wagtail 文档没有对此进行详细说明,因为它只是遵循标准的 Django 工作流程,希望任何有现有 Django 项目的人都熟悉要与之集成的...)

使用 wagtail start my_project 作为起点的教程将省略此步骤,因为入门项目附带一个带有主页模型的预制 models.py。您找到的 site-packages/wagtail/project_template 目录实际上是起始项目的 'master' 副本,它在您 运行 wagtail start my_project 时被克隆。由于这没有连接到您当前的项目,因此更改它没有任何效果。