Skip to main content
 首页 » 编程设计

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

2025年02月15日38sharpest

我正在尝试扩展一个已经存在的 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) 并尝试按照“扩展主页模型”部分进行操作,但无法弄清楚 home/models.py 文件在哪里,因为其中没有名为 home 的文件夹我的 Django 应用程序。

谢谢你的建议

请您参考如下方法:

作为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 作为起点的教程将省略此步骤,因为入门项目附带一个带有 HomePage 模型的预制 models.py。您找到的 site-packages/wagtail/project_template 目录实际上是启动项目的“主”副本,它会在您运行 wagtail start my_project 时被克隆。由于这没有连接到您当前的项目,因此更改它没有任何效果。