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

时间:2017-03-26 18:56:37

标签: python django wagtail

我试图扩展已有的Django App。该应用程序运行正常,但我想添加博客功能。

我已经安装了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/ 这表明以下是第一步: -

  

首先,我们将创建我们的通用页面类作为主页类   在我们启动Wagtail项目时默认已创建。

然后显示以下代码:

# 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

在我的原始app目录中。我将上面的代码添加到驻留在上面目录中的models.py文件中。然后我跑了

python manage.py makemigrations

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

  1. 您能告诉我上面是否编辑了正确的文件,或者我是否应该编辑了不同的文件,还

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

  3. 我已经参考了这里的文档(http://docs.wagtail.io/en/latest/getting_started/tutorial.html),并尝试按照“扩展主页模型”进行操作。部分,但无法找出home / models.py文件的位置,因为我的Django应用程序中没有名为home的文件夹。

    感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

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

  

您现在已准备好向Django项目添加新应用(通过./manage.py startapp - 请记住将其添加到INSTALLED_APPS)并设置页面模型

正在运行./manage.py startapp blog会为您的项目添加blog应用,包括空models.py - 这是您添加网页定义的位置。 (Wagtail文档没有对此进行详细介绍,因为它只是遵循标准的Django工作流程,对于任何现有Django项目与...集成的人来说,希望这是熟悉的。)

使用wagtail start my_project作为起点的教程将省略此步骤,因为初学者项目带有带有HomePage模型的预制models.py。您找到的site-packages/wagtail/project_template目录实际上是初始项目的“主”副本,它在您运行wagtail start my_project时被克隆。由于这并未与您当前的项目挂钩,因此更改它无效。